mBot Ranger ROS bot

To learn ROS I have equip an mBot Ranger with a Raspberry Pi 3 that is connected to the controller board of the robot.

The ROS master is running on the Raspberry Pi and in the teleop. example I'm running the Joy node on an PC with a XBOX 360 controller connected. 

I have made a python library for the Me Auriga control board that I'm using to communicate with the Me Auriga board with Makeblock firmware loaded. (Find more information on that library here)

Then I have altered the Makeblock-Ros node to use my library and added functionality for reading the on-board sensors of the Me Auriga board.

My ROS package for the mBot Ranger robot can be found here but it is a work in progress.

A video where the robot is controlled by teleop. will be posted soon.

Update 2017-05-10 

After some playing around with the robot I decided to skip the Makeblock firmware and using rosserial_arduino instead and it works really good. All the on-board sensors and an ultrasonic sensor are not being published, will post a video showing the sensor readings in rqt_plot.

Sensor data being published

·         1x Ultrasonic sensor

·         1x Sound sensor

·         2x Light sensors

·         1x Temperature 

·         1x Battery sensor

 

 

Update 2017-06-07 

 

I have changed the plan to use the Makeblock firmware, instead I used rosserial and maked a custom firmware for the Me Auriga board.

 

I got the teleoperation to work much better with working kinematics and sending out current velocity for each motor in RPM.

 

Next step is to make a description for the robot to show it in rviz and show the sensor as the range display type.

 

I have started to play with the Kinect sensor but I think I have to make a larger robot base to use it on the robot.

 



 

 Update 2017-06-08 

 

Now I have mounted a FPV camera for doing teleoperating with FPV googles and it works realy good. It's really cool driving the mBot Ranger around in the house.

The camera mount can be downloaded here

 

 


mBot Ranger with ROS

  • Control method: Teleoperation (for the moment), ROS
  • CPU: Arduino Mega, raspberry pi 3
  • Operating system: ROS
  • Power source: USB power pack for Pi, 8 1.2v Ni-MH (9.6v)
  • Programming language: C++/Python
  • Sensors / input devices: battery monitor, Ultra Sound, Sound, Line sensor with 2 IR photodiodes, Temp, IMU
  • Target environment: indoor

This is a companion discussion topic for the original entry at https://community.robotshop.com/robots/show/mbot-ranger-ros-bot

That’s a very compact ROS

That’s a very compact ROS implementation. I’ve been working my way toward learning ROS and building a simple ROS robot, but I keep getting overwhelmed every time I start putting one together. I always wind up punting and just rolling my own python program, and stopping short of getting everything controlled by ROS. In hindsight, how much trouble was it getting everything wrapped inside ROS with teleop control to drive it around?

Took some reading but it was wourth it in the end

I bought this book “Effective Robotics Programming with ROS” end starting to play with it, I have a lot of system development in the bag. But have still some things to learn like the navigation stack.

But I like ROS a lot, saves a lot of time compare to my old robot where I have made all the programming.

Next step is to try to calculate a odometry from the encoders, but I think I need to make a custom program for the Me Auriga to get that to work. Probably I will build a bigger robot based on Makeblock parts with Mecanum wheels.

I like the mBot Ranger with all it’s onboard sensors, with this setup you can play a lot with a fairly cheep robot.  

Next I will make a model to present in rviz and visualize the ultra sonic sensor as a range cone.

I like ROS

but it could be better documented the last I played with it which is about a year.  To do the really cool stuff like odometry with SLAM and MoveIt you need to describe your robot in XML.  And the documentation on how to do that seems a bit scarce.  I haven’t read that book you bought, so will have to try.  I have the book by Enrique Fernandez which is pretty good except when it isn’t.  

I did have ROS working at one point with a Kinect which was pretty slick.  So, if one can get all the pieces working, it will seamlessly integrate the point cloud it creates which is pretty cool.  I look forward to seeing your progress with this.

Regards,

Bill 

I’m a beginner in these jobs

I’m a beginner in these jobs and I want to make a system that just walks forward when I try to shut it down. My question is whether I should buy a car kit with encoders or without. In what cases are encoders justified?

Awesome progress! I know

Awesome progress!  

I know what is involved to get to where you are; my hat is off.  Congrats!

Your project inspired me to take another look at ROS.  I figured that maybe another year out and the documentation might be better or there might be better books than the ones I bought.  I found and bought this book which is really excellent for where I am at with some experience but no expert with ROS:

https://www.amazon.com/ROS-Robotic-Projects-Lentin-Joseph/dp/1783554711/

Not the best for beginners maybe, but he does take one through installation and getting ROS up and running.  He has a number of real world examples and takes you through step by step installation and getting things up and running.  He has an example using TensorFlow model to identify objects, integration with different types of hardware including VR goggles etc.  FYI, he also shows one how to generate a URDF file from a CAD file which I didn’t know you could do.

I am playing with an example project that ids faces, and then controls Dynamixel servos to center the face on the screen.  I am going to have it talk to an Arduino instead which will control hobbyist servos.  I have all the ROS pieces working separately, just need to combine into one launch file and build the robot to control.  When I get farther along, I will post my progress.  Simple example, but I have never made so much progress with ROS so happy.

Thanks for getting me back to ROS and for posting your code.  Good luck getting it all working.  

Like that book to

I used ROSSerial with an arduino clone called MeAruiga and it acts as an ROS node that makes it real simple to add many arduino boards to control diffrent stuff.

Look at my latest update and have a look at the custom firmware

I’m in pretty much the same

I’m in pretty much the same boat as nhbill. I’ve been a bit overwhelmed in previous attempts to make good use of ROS, but I’ve been wanting to dive in again. This one has got me inspired too. I’ve also been looking for a fairly-recent ROS book, and the one nhbill referenced is from March of this year. That’s about as recent as they get as far as I can tell. I’ve just ordered that book, and I’m really looking forward to converting a couple of robots over to ROS from my homegrown python programs and messaging between threads/programs.

Thanks to both X-firm and nhbill for all the ROS activity here. It’s just what I needed.

I have found it an excellent

I have found it an excellent resource and my copy is already a bit dogeared since I have read it several times.  I like that he has it setup so that you can download the code and then pick and choose your packages to add functionality.  Ok, you could do that with any ROS code.  The difference here is that he steps you through the commands to add new packages to your build so that you can then just customise it to your needs.  Add the new package to the launch files, and you are off to the races.  I am excited to see what I can do next with ROS.  I would love to have a robot that looks for faces, tries to recognize who they are and then saves that info when someone tells it their name.  I will do baby steps to that goal, but I think it will be doable.  Most of the pieces to do this are described in the book or are in online samples somewhere.  It SEEMS doable but will see.  

I hope you get as excited as I am/was about ROS while reading the book.  I am too old to be having this much fun.  My door is always open to help if I can.  It is a shame we aren’t near each other to help each other out although do have access to skype, webex etc. so almost as good as being there.

Ah, so you found that book

Ah, so you found that book “ROS Robotic Projects” too!   I have found the templates for doing things very helpful and his directions pretty good.  I am very excited since it seems like it has opened up a door into being able to do some very cool things that would be literally years of development effort otherwise.  I have tried doing these things before with ROS, but without the template to getting me started, I would always get stuck on one thing or another I couldn’t figure out.  ROS documentation at ros.org is not as good as it could be.  A library of packages on github one can pick and choose from to build up functionality would be ideal like how Lentin has designed his book.  

That is so cool you got it working with FPV googles!  That must be awesome driving around your house.  LOL

I played with the ROS serial and got that working as a ROS node.  Didn’t click with me you could use more than one Arduino although thinking about it, it makes sense each controller is just another node on ROS.  Neat stuff.  I look forward to whatever else you get going.  Thanks for getting me back to playing with ROS.

 

I’m curious about a couple of things.
About this project - I didn’t see a photo of the Pi or Mega listed in the specs. Where were these applied?

I found this project because I got the impression you have experience in bluetooth with the Makeblock system. I am thinking about adding bluetooth with a Makeblock controller to my project. However, I see you use the same standard XboxOne that I have. You were able to successfully command the Auriga with an Arduino library or was Makeblock blowing steam on incompatibility?

After editing my post( I realized I could probably BT the Pi part instead, but I would like to BT to the mBots too). Did you also BT to the Pi with the controller?