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!