I recently had an amazing opportunity to visit Denmark! While there, I attended two key robotics conferences: RosCon and ICSR. The experience changed my life, and it gave me an idea of where to head next in my robotics career. Out of the two conferences, RosCon was the most fun, and I want to take some time to detail my experience here.
The day before the conference:
In the days prior, I had been using the RosCon conference app “Whova” to network and talk with the other attendees. One of the attendees arranged a meetup the day before the conference in Odense. We arranged to meet at a street food market, Storms Pakhus, which was right down the road from my Airbnb.
It was fascinating to hear from different people about the work they did in robotics. It opened my eyes to the vastness of the robotics industry. I ended up connecting with some people there, too, and seeing them later at the conference.
Day 0 of RosCon
RosCon workshops took place on “Day 0” of the conference, October 21st. I had registered for two workshops, one in the morning and one in the afternoon.
The morning workshop was Manipulate with MoveIt Like a Pro. This workshop was an introduction to the use of MoveIt for robot arm motion planning. I had chosen this workshop for two reasons. One was to hear from and connect with PickNik Robotics. They are participating in the SpaceROS project, something I want to contribute to. The second reason was that MoveIt is a popular tool in ROS2. Learning even a little about it would give me insight into the robotics software world.
The afternoon workshop was Something Big Is Coming in ros2_control: Fun With Controllers. ros2_control is an important framework in ROS 2, so it made sense to attend this workshop. Additionally, Stogl Robotics and Locus Robotics were running the workshop.
Manipulate with MoveIt Like a Pro Workshop
The MoveIt workshop was an introduction to how to use MoveIt for robot arm motion planning. The workshop had two parts. The first part was programming a simulated arm using ROS 2 and MoveIt. The second part was using the MoveIt Pro interface for programming and simulation.
For the first part, we used Rviz2 to visualize the simulated robot arm. The example used was a hot dog and a bun. The idea was to use the robot arm to manipulate the hot dog and place it in the bun. I found this part of the workshop to be the most interesting and practical for me. If I am ever to program anything involving the use of MoveIt, this would likely be the way I would use it.
For the second part, we used the MoveIt Pro web interface. We used the interface to interact with a simulated Universal Robotics arm. We were shown different ways to use the interface. These included changing the camera angles on the UR arm, adding new arm and joint movements, manipulating objects with the arm, and chaining different movements and actions. The interface consisted primarily of a node-based design and a drag-and-drop feature. It felt like programming shaders in Blender or using Blueprints in Unreal Engine.
The second part of the workshop felt less relevant to me. While MoveIt Pro is a very useful tool, I’m not sure when or where I’d use this interface. Additionally, I’d have to pay to use MoveIt Pro in the future (we had trial keys for the workshop).
If you want to check out the slides and the code used in this workshop, go to this link here. The code is helpful for anyone wanting to learn about MoveIt. It is well-documented and easy to understand, even with little experience in ROS2 C++.
Something big is coming in ros2_control: Fun with Controllers
The ros2control workshop was interesting, but much harder for me to follow. While both workshops involved ROS2 C++ code, this workshop had much more advanced C++ code. Also, the workshop hit a snag. We found some code wasn’t implemented, so the leaders had to guide us through that part, which made things confusing.
I learned two main things at the workshop: chaining controllers and fallback controllers. Chaining controllers connects ROS2 controllers in sequence for collaboration. You can chain one controller that controls the position of arm joints to another that controls the torque on each joint. Fallback controllers are backup controllers. They take over if one stops working.
The workshop had four exercises, and each involved the use of a new feature of ROS2 control. The exercise that stood out to me was the fallback controller exercise. In that exercise, we created a fallback controller alongside our main controller. We then failed the main controller and watched the fallback controller take over. We also learned how to switch back to the main controller after we did this.
I like the concept of the fallback controller. Redundancy is important in the world of robotics and software, after all! I’m considering using it in a future iteration of my Tawnamy Bot project, too.
If you want to check out the slides and the code used in this workshop, go to this link here. Fair warning: the code might be hard to follow. Especially if, like me, you aren’t too familiar with ROS2 C++ and the ROS2 Control framework.
Day 1 of RosCon
The first session I attended was RMW Zenoh: An alternative middleware for ROS 2. This was an interesting session about Zenoh, a new ROS 2 middleware. It aims to solve many problems with current DDS implementations. It’s currently in the experimental phase, but I encourage you to read more about it and try it out!
The next few sessions I attended were about the use of ROS2 and robot dogs. I learned that the industry often uses robot dogs for mapping and surveillance. I learned about the ROS2 library that can control Spot (Boston Dynamics’ robot dog). You can check that out here. I should note that, according to someone at ICSR, this repository isn’t very robust. They preferred using the regular API that Boston Dynamics provides. Even so, it’s a resource I can use should I ever consider working with Spot!
Before the next round of sessions, I went around to the different exhibits and talked to the different companies. One fun moment was when I talked to a robotics engineer at Pal Robotics, and he offered to take a picture of me in front of TALOS and TIAGo Pro:
The next round of sessions was about executors in ROS2. I had some experience working with executors in ROS2, so I could follow along with these sessions. One session that interested me was about cactus-rt. It’s a real-time app framework that ensures your C++ code performs real-time operations. If you’re interested, check out the GitHub repository here.
The next round of sessions I attended was about new developments in simulation and ROS2. The sessions I found most interesting were on the URDF Creator and the Gazebo improvements. URDF Creator is a fast way to design URDF files in a 3D environment, which you can check out here. I think I’ll use this tool when I get more into the development of robotics, especially with my Tawnamy Bot project.
The last part of the day was the first set of lightning talks. For each talk, a presenter is given at most 2 minutes to present a particular topic. In past RosCons, when the time was up, speakers were politely clapped off the stage. For this RosCon… we had a gong that was rung!
Here are some links to resources from the talks that I found interesting:
https://torydebra.github.io/AwesomeRoboticsConferencesAndSchoolsList
https://github.com/PickNikRobotics/data_tamer
Day 2 of RosCon
Day 2 of RosCon didn’t have as many interesting talks as Day 1, but there were some key highlights.
I walked around the exhibit hall and saw all the different companies and their booths. Here’s a video of the G1 robot demo I took while at Unitree’s exhibit. At the last second, the robot fell backward. It was fine afterward, but I’m still not sure what the issue was:
I attended the second round of lightning talks and found a lot of them interesting. It was a GitHub repo with a ROS 2 version of algorithms from the book, Probabilistic Robotics. This book is actually a supplemental resource for the course I’m currently taking. You can find the link to the repository here. Another talk was about a robot education platform called Andino (link to repository here). I found this interesting, as it’s very similar to what I’m trying to do with my Tawnamy Bot project.
There were many other interesting talks in this round of lightning talks. Here are links to some resources from them:
- Launch Unifier
- From the desks of ROS maintainers: A survey of modern & capable mobile robotics algorithms in the robot operating system 2
- Flatboat CLI
- Forge Your Future with Open Source
The sessions after lunch were interesting. The first round of sessions was about ROS2 testing tools. I found r2s, a terminal UI for ROS2, particularly interesting (link to repository here).
The next round of sessions was about the use of ROS2 and AI. These sessions were particularly interesting. One that stuck out to me was a project called ros2ai (link to repository here). Ros2ai is like integrating ChatGPT into ROS2. It’s definitely something I will experiment with in the future. RAI was also an interesting project, and one I recommend checking out as well (link to repo here).
The last round of sessions talked about mobile robotics and ROS2. One session I found interesting was about Nav2’s new feature: autonomous docking. I have limited experience with ROS2 Nav2. However, this session gave me a lot of new ideas for my Tawnamy Bot project.
The last part of the conference was a panel discussion. It was with the Open Source Robotics Foundation (OSRF) board of directors. Two panel members, Steve Cousins and Brian Gerkey, worked at Willow Garage in the early days of ROS (for context, ROS was born out of Willow Garage). VM Brasseur was leading the panel and asking questions. Most were about the OSRF and ROS2, and the future of open-source robotics software. I wish I had taken notes on the whole thing, but I got carried away with how interesting it was!
After the panel were the closing remarks. The MC gave us some fun and shocking statistics on a few things. Here are a few:
- There were over 975 conference attendees (+300 from last year)
- 50+ countries
- 300+ companies
- 70+ universities
- 1,128 people participated in meetups (+455 from last year)
And finally, they announced the location of RosCon 2025 to be Singapore! I’m excited to go next year and learn even more about the world of open-source robotics software!
That’s all I have for my time at RosCon 2024! Before I wrap this up, I want to give a small shout-out to the team from Monkey Robotics I hung out with while in Copenhagen. I had a blast hanging out with them, and can’t wait to see them again at next year’s RosCon!
In the coming weeks, I plan to make a post about my time in Copenhagen and at ICSR. I also plan to create an image gallery for all the pictures I took (which are many), so stay tuned for that!
Links to resources mentioned:
- MoveIt Workshop resources
- Ros2 Control Workshop resources
- Zenoh
- Spot Ros2
- Cactus-rt
- URDF Creator
- Robotics Conferences and Schools
- Data Tamer
- RSE Probabalistic Robotics
- Andino
- Launch Unifier
- From the desks of ROS maintainers: A survey of modern & capable mobile robotics algorithms in the robot operating system 2
- Flatboat CLI
- Forge Your Future with Open Source
- R2S
- ros2ai
- RAI
Very Nice!