Index of robot model vs. available sensors/actuators

Requests regarding how to set up experiments in ARGoS.
jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Index of robot model vs. available sensors/actuators

Postby jharwell » Mon May 04, 2020 5:20 pm

Hi Carlo,

"argos3 -q sensors " reports among other things the presence of the colored_blob_omnidirectional_camera, which says "A generic omnidirectional camera sensor to detect colored blobs", which to me implies that it should be able to be used with any robot model. However, as far as I can tell, it only works for the foot-bot.

Is there an index somewhere defining *exactly* which sensors are available to be used with a given robot model? If not, I think adding a field to the result of "argos3 -q foot-bot", "argos3 -q eye-bot", etc., which says exactly which sensors are supported/can be added in the XML input file would be very helpful. This is a contribution I would like to make to ARGoS if it isn't there already.

Thoughts?

jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Re: Index of robot model vs. available sensors/actuators

Postby jharwell » Tue Jun 02, 2020 7:01 pm

One additional thing that I thought of was to move the results of "argos3 -q <query>" out of ARGoS source code into a docs/ folder in the ARGoS repo as a set of text files, and then use cmake to preprocess the text files to emit headers with #defines for the query results. This would allow the text files to be reused on something like readthedocs (which look very nice as a bonus: https://readthedocs.org/projects/kernel/), making the full ARGoS documentation available online and searchable via google. Right now, there are parts of ARGoS that are documented via "argos3 -q" which are not documented anywhere else, which can raise the barrier for ARGoS adoption for those searching online trying to find a suitable simulator.

Carlo/Michael--any thoughts on this, as well as the robot model -> available sensors/actuators index?

pincy
Site Admin
Posts: 632
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA
Contact:

Re: Index of robot model vs. available sensors/actuators

Postby pincy » Tue Jun 02, 2020 8:03 pm

It is a change that has merit, but I didn't go through with it for two reasons:

1. I prefer to have an internal querying system as I do now because that is a reminder that, when you change a file, you also need to change the related documentation. Also, as you install new plugins, you get the documentation "for free" rather than having to patch a website or having to juggle many files (resources, docs, etc).

2. External documentation is great. The issue I have is lack of time. I simply can't devote the many weeks necessary to document everything and then make sure that every future change will be reflected correctly. I need help, also in coordinating this effort.

3. The idea of a sensor/actuator index is good. It's not a lot of time to do it. The issue is with external plugins: how can they be added to the website seamlessly?
I made ARGoS.

jharwell
Posts: 67
Joined: Thu Jan 25, 2018 4:12 am

Re: Index of robot model vs. available sensors/actuators

Postby jharwell » Tue Jun 02, 2020 9:19 pm

1. That makes sense, and is why I prefer to have the doxygen documentation inline in my code as well.

2. If there are documentation tasks (doxygen or otherwise) which could be offloaded to me, I would be happy to help.

3. I'm not sure what you mean about external plugins--I was thinking about adding this to the query results, so that part of what you get when you do "argos3 -q foot-bot" (for example), you get a list of all the sensors and actuators you can request in the XML file.

pincy
Site Admin
Posts: 632
Joined: Thu Mar 08, 2012 8:04 pm
Location: Boston, MA
Contact:

Re: Index of robot model vs. available sensors/actuators

Postby pincy » Tue Jun 02, 2020 9:27 pm

2. Thanks for offering help. We could meet some time in the summer and make it happen!

3. I am not sure how to make the link between sensors/actuators and the related robots automatically. The issue is in the way sensors and actuators are designed. ARGoS allows you for multiple implementations of the same sensor/actuator interface, and there isn't a general "check" for a certain type of allowed robot in the query system. There is a SetRobot() method in both CSimulatedSensor and CSimulatedActuator, and one could imagine to modify it or add an analogous method to make this kind of query possible. I just never got around to do it.

At some point in the summer, I wanted to change the way ARGoS stores robots in memory. Right now the constructor creates all the devices regardless of whether they will be used in the simulation. I have spent a couple of days looking into an optimization of this approach that uses the .argos file to lower the memory footprint, but loading parts of the robots on-demand. It's pretty hard to do, but at some point in the summer I'd like to really work on it. As part of this effort, I could include a better way to query which robots can have which sensors/actuators. It's good to know it now, so the design can take this into account.
I made ARGoS.


Return to “How to... ?”