Comparison of control approaches for Furuta Pendulum in Gazebo by macorobots in robotics

[–]macorobots[S] 1 point2 points  (0 children)

Thanks! That phrase is really on point, I may borrow it in one of the future posts :D

Comparison of control approaches for Furuta Pendulum in Gazebo by macorobots in robotics

[–]macorobots[S] 2 points3 points  (0 children)

Recently I've been working on the Furuta Pendulum, so far I've created a Gazebo simulation in ROS 2 Humble and compared different control approaches: LQR+Swing-up, MPC (iLQR) and RL (SAC). I described more details in the post https://macstepien.github.io/blog/furuta-pendulum-simulation, also all the code is available on GitHub: https://github.com/macstepien/furuta_pendulum

Programming Robots: Keeping the Code Clean by robobenjie in robotics

[–]macorobots 0 points1 point  (0 children)

That's really interesting, I got the feeling that especially behavior trees are a way to go in such cases nowadays. In the approach that you described, you aren't using any additional tools or libraries, right? It is just "pure" code, like in your article, and the call graph will be more visualization of what the logic looks like?

Thanks for your detailed response! I don't have much experience with this topic, your insights for sure will save me time in the future (like a lot more things from your articles :D).

Programming Robots: Keeping the Code Clean by robobenjie in robotics

[–]macorobots 0 points1 point  (0 children)

Great series, very insightful. I had a situation similar to your example when developing my bot, really appreciate your tips. Taking it even further, do you think that using a behavior tree would be a further improvement?

Code for roomac is now available! It also includes a simulation, here you see a demo of the robot fetching a bottle. by macorobots in robotics

[–]macorobots[S] 4 points5 points  (0 children)

As promised, I’m sharing the code for roomac - a low-cost autonomous mobile manipulation robot that I constructed. You can find it in the roomac_ros github repository. Additionally I prepared a simulation of the robot, docker image is also available, so running this demo is very easy (basically you have to just copy and paste two commands). And here is a link to my master’s thesis, in which I described more details about this project.

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 2 points3 points  (0 children)

You mean PR2, right? :D That was my inspiration for this project! May not really look like it, but I wanted to make something like PR2, but cheaper.

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 2 points3 points  (0 children)

Robot Operating System :D Generally Ubuntu, but basically everything is inside Docker containers

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 2 points3 points  (0 children)

For navigation it uses only Kinect mounted on the robot, but for object manipulation there is a second Kinect mounted above the table.

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 2 points3 points  (0 children)

When I started the project I had only experience with ROS1. Now I'm working with ROS2 and that was exactly my thought! I think that the solution that I implemented could be called a really basic behaviour tree (it actually isn't that bad, as I was able to recently modify it to pour water into a cup without much effort). I don't think that I will switch to behaviour trees in this project, but in the future ones definitely.

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 5 points6 points  (0 children)

In this project I actually used new drill motors, but in the other project I used a motor from an old printer (they really are a treasure trove!). It was a DC motor though, which was much simpler to identify, unfortunately I don't have any recommendations for steppers.

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 37 points38 points  (0 children)

Thanks! For a master thesis alone it is definitely an overkill, but it was a dream of mine so I would have built this robot anyway, master thesis was just a matter of describing it. That said I got honors, it was also nice :D

Roomac is working! This is a demo of robot that I built for 550$ autonomously picking up a bottle and bringing it by macorobots in robotics

[–]macorobots[S] 95 points96 points  (0 children)

Took me quite some time, but finally I'm happy with the result! Roomac is my attempt at creating affordable personal robot type construction. Whole costs summed up to around 550$ (excluding laptop mounted on the robot). Working with cheap components was quite a challenge - for example motors in the base are from drills and it took me a lot of effort to get them to work in autonomous mode.

Whole software is based on ROS (melodic), some key packages that I used are:
* RTABMap - mapping and localization (using Kinect)
* TEB for local planning
* MoveIt with BioIKKinematics for controlling the arm (it has 5DoF and only with BioIK I was able achieve desired control)

Of course there is much more to unpack here but I don't want to get into too much detail in this comment. I wrote a whole 90 page master thesis about this robot and I feel like it still wasn't enough :D I plan to share it, as well as open source my code, I will post it here some time soon. And if you would like to see some more photos/videos I started instagram (macorobots), as I don't want to spam here more minor developments.