9th week: Update into ROS2 Humble, Ignition Gazebo and some multicable testing.
On this week we decided to move from ROS Foxy into ROS Humble. For this, I followed this tutorial. Also I updated gazebo and instaled the new version (Ignition Gazebo) with this tutorial (https://gazebosim.org/docs/garden/install_ubuntu).
I tried to build again the whole ROS folder I had, but some packages and dependencies cannot be solved, because some of them dont exist for the new ROS version. Also I tried launching the hospital world and the turtlebot with the new simulator, the commands are:
Launching the world, you can choose between the modified world (only spawns the person) or the normal world (spawns all the props):
$> gz sim -v4 hospital_follow_person_mod.world_sdf
Also to launch the turtlebot, we use the next command:
$> gz service -s /world/hospital_modified/create --reqtype gz.msgs.EntityFactory --reptype gz.msgs.Boolean --timeout 1000 --req 'sdf_filename: "turtlebot2.sdf", name: "turtlebot2"'
I’ve been having isues loading the turtlebot, as the environment variable $IGN_GAZEBO_RESOURCE_PATH only finds the files if it has a single path, but if there are several concatenated paths it doesn’t find them, as it can be seen here
Also this week I took a look on the multicable problem. I found out that the problem seems to be that when the source[“name”] (target[“name”] in the input case) is the same as one that already exists, wires are all named “wire” so the value is just overwritten instead of creating a new one and the older wire is lost, that’s why the wire that shares information is always the same.
I tried several things, such as naming the wires with a number, so every wire has their own name (“wire0”, “wire1”…). One thing I’ve also tried is modifying the “data” part of inputs and outputs. I’ve named them with the number of their wire, so instead of “data” and overwritting the previous “data” parameter, now they are called “dataX” (“data0”, “data1”…) so each wire has their own shared memory even if they come out of the same output port. You can check the changes here, and also the a.txt file which contains the output of an execution (it contains several traces to test things and see what is happening) and reveals that both wires (UP and DOWN) receive the new number (incrementing after each loop).