The first part of our project involves detecting and tracking a leader robot using computer vision. We modified the neato models with an AR tag so that they could be easily detected. Each robot has the same tag at the moment. That was an intentional decision that we made after we began implementation. Having unique tags on each robot would be necessary further down the road, especially when more robots get added, but it was not needed at the moment we discovered. The tag sits above the neato’s body so that it remains clear of the camera.
Continue reading
Decentralized Follower Controller
When we set out to create the leader follower system, we knew we wanted to make the swarm control scheme decentralized. This way, each robot in the swarm can independently process its environment and react accordingly without need for a central arbiter or “brain”. With a decentralized system, robots can be cheaply added and removed when necessary, and scaling the swarm out to n robots is just as easy as adding the necessary robots. In the context of our leader, to add another robot to the swarm would be as simple as spinning up a new ROS node for an additional robot controller.
Continue reading
The model that we had in the previous post was mostly for proof of concept. It was important to fix the tag to the robot so that it always stayed in the same position relative to the robot as it moved around. One bump in the road that we hadn’t anticipated was the different model formats. The Neato model was written as a URDF model which is used in ROS while the markers we had generated were in SDF file, a gazebo specific format. What now seems trivial took a bit of experimenting. At first we tried converting from URDF to SDF. There were some converters and archives in the CompRobo repository, however, they were not exactly what we needed and further complicated the union. Eventually, we digested the URDF files and translated the tag model by adding a link and fixed joint. It was much more simple to modify the URDF file and tweak the links than to try and convert the other way around.
Continue reading
Pivot
We started the final project with the idea to look into and replicate some method of swarm cooperative transport spurred on by our interest in swarm robotics. The aspect of having multiple robot agents working together in a collaborative task was appealing. However, upon digging deeper into the topic space and existing implementations we realized the magnitude of the task that lay before us. The current methods in place all involve a heavy lift in physics and simulation which given the project timeline and our learning goals didn’t make sense to commit to. Therefore, we decided to take a step back and access what interested us in the swarm robotics space in the first place. With careful thought, we realized once again the aspect of building out a multi-robot system that cooperates with one another is what generates the most excitement for us.
Continue reading