Senior Project Update: MoveIt,ROS, and Dorna 2 API Integration!

Here’s another video demonstrating the progress of my Dorna 2 robotic arm senior project, this time with narration.

To summarize briefly, as of last week I successfully tied the Dorna 2 API to Robot Operating System (ROS) and MoveIt. My implementation isn’t perfect, but this is a start, and this sets the groundwork to allow MoveIt to control the robotic arm, avoid obstacles in the environment, and perform pick-and-place routines.

To add some more detail and context to the video above, over the past couple weeks I have been working to integrate the Dorna 2 API and ROS together. To get the results demonstrated in this video, I wrote a robot operating system Python node that subscribes to the joint_states topic. When the simulation is “executed”, the joint_states topic is updated with new configurations of the robot arm. The Python node then takes these new configurations, filters out robot configurations that appear multiple times in a row, and sends the new configuration to the Dorna 2 API. The Dorna API then works to move to new robot configuration/position. In other words, I am filtering out position commands from MoveIt which have the same position repeated multiple times and only sending unique position commands to the Dorna 2 API.

This implementation is rough, and subscribing the joint_states topic of the simulated robot to control a real robot is probably not the way it is intended to operate a real robot, but for the purposes of this project I think it is good enough for now. The robot “pauses” because the Dorna 2 API is processing each new position command individually. I didn’t see a way in the API documentation to allow the Dorna to “look-ahead” and process or smoothly move from point to point. It should be possible since the robot has a bunch of positions just sitting in the queue. Perhaps sending the positions to a text file, and having the API read from the text file would work better.

In the future I may have to learn, and implement, an action-server to control the robot properly, but for now I’m proud of my results and of everything I have accomplished and learned!

2 thoughts on “Senior Project Update: MoveIt,ROS, and Dorna 2 API Integration!”

  1. Which version of ROS are you using? Are you willing to share the code? I have a project where I need to control Dorna 2 with ROS2 and this would help alot.

    1. I am using ROS 1 Noetic for this project. At this time, I haven’t made up my mind on whether I want to share the code yet, so I apologize but I want to hold off for the time being. I will probably share the code on Github in a couple months when I am done with this project and have cleaned things up a bit, but regardless I doubt my code will work with ROS 2.

Leave a Comment

Your email address will not be published. Required fields are marked *