Alternate hardware suggestions for Linorobot

776 views
Skip to first unread message

Aarlex

unread,
Dec 25, 2016, 10:25:26 AM12/25/16
to LINOROBOT
Hi, 

First of all thank you for making Linorobot available as opensource for everyone to use. I always wanted to build my own robot while using ROS and its giving me a perfect start. So great work for bring different platforms available to all.  

I am now in the process of building the 2wd version of linorobot during the new year vacations. I have acquired almost all the things except for the gy 85 IMU sensor.  I plan to follow the guide over time to make all other robots. 

The motors I am using are Pololu 37D 100:1 gear ratio 12 V motor with encoder.  I would like to know if there are any alternative motor controllers and IMU I can use for the build. Eg. MPU-6050 IMU. Also can you suggest on processors that can be used (RPi3, BeagleBone Black, Odroid  etc)

Can you state what other hardwares have you tried such that the same code can be used. 

Many Thanks 

Alex 

Juan Miguel Jimeno

unread,
Dec 27, 2016, 11:51:30 PM12/27/16
to LINOROBOT
Hi Aarlex,

Unfortunately, it only supports GY-85 IMU for now. If you don't have any IMU at the moment, there's a branch(https://github.com/grassjelly/linorobot/tree/minimal) that uses the motor encoders (instead of IMU)  to calculate the angular velocity for Odometry.

Among the three the dev boards you mentioned (RPi3, BeagleBone Black, Odroid) I'll go with Odroid XU4 http://www.hardkernel.com/main/products/prdt_info.php?g_code=G143452239825 . It's decent enough to run the Navigation Stack, handle the laser sensor drivers and run some computer vision nodes in parallel. Alternatively, you can try Jetson TK1 one from Nvidia as well http://www.nvidia.com/object/jetson-tk1-embedded-dev-kit.html.

For alternative motor drivers, I have also tried BTS7960. The firmware is available at the current build although the schematics are not available yet. I'm currently developing a Teensy board shield which supports both L298 driver and BTS7960. There's another branch (feat) pending to be merged soon once I have verified the design. Will post it here once the new branch is merged and ready to use.



Aarlex

unread,
Jan 3, 2017, 9:08:16 AM1/3/17
to LINOROBOT
Hi,

Thanks for the update.

I got the Gy85 IMU and have started the build. I tried testing if the motors work for the teleop launch by wiring everything on the breadboard (motors, L298, IMU, encoders etc).
I am using the laptop for the test right now, but having problems with platformio step where the code is loaded into the teensy. I have no experience of using platformio before, is it only meant for small embedded processors? Will it not work on the laptop (linux ubuntu 14.04 intel core i5 processor) ?

here is the error
~/catkin_ws/src/linorobot/arduino/L298$ sudo platformio run --target upload
Traceback (most recent call last):
 
File "/usr/local/bin/platformio", line 7, in <module>
   
from platformio.__main__ import main
 
File "/usr/local/lib/python2.7/dist-packages/platformio/__main__.py", line 24, in <module>
   
from platformio import __version__, exception, maintenance
 
File "/usr/local/lib/python2.7/dist-packages/platformio/maintenance.py", line 24, in <module>
   
from platformio import __version__, app, exception, telemetry, util
 
File "/usr/local/lib/python2.7/dist-packages/platformio/app.py", line 25, in <module>
   
from lockfile import LockFailed, LockFile
ImportError: cannot import name LockFile



Can you suggest something. Many thanks.

Aarlex.
Message has been deleted

Juan Miguel Jimeno

unread,
Jan 5, 2017, 12:10:35 AM1/5/17
to LINOROBOT
Hi,

Have you tried this solution from platformio's?

https://github.com/platformio/platformio-core/issues/360

Let us know if you're still having the same problem. ;) Thanks

Message has been deleted

Aarlex

unread,
Jan 5, 2017, 6:45:24 AM1/5/17
to LINOROBOT
Hi Juan

Thanks. I will try their solution and update soon. 

Many thanks


Aarlex

unread,
Mar 2, 2017, 1:47:40 AM3/2/17
to LINOROBOT
Hi Juan,

To follow up, I am almost finishing my build for the 2wd version. I have one question. I have several motors lying around. The problem is they are simple dc motors 6v - 12 v with no encoders on them. Just two terminals for the motor power.(+ and - terminals) In this case, will the linorobot code work as there are no encoder A, B, VCC pins to connect to the teensy. Does linorobot generate odometry only from the IMU or it fuses both encoder and IMU. I plan to try making a 4wd version from the motors using the GY85 IMU. 

Thanks

Juan Miguel Jimeno

unread,
Mar 2, 2017, 2:13:10 AM3/2/17
to LINOROBOT
Hi Aaarlex! Glad to hear your progress. Would be great if you can create a separate thread as might be a useful topic to the rest. Thanks man! :)

Aarlex

unread,
Mar 23, 2017, 3:05:59 AM3/23/17
to LINOROBOT
Hi Juan, 

Just wanted to know whether the current firmware supports stepper motors in place of DC motors. Also what about omnidirectional robot kits with 3 wheels (120 degrees apart) or 4 wheels (90 degrees apart). 

Thanks 
Alex

Juan Miguel Jimeno

unread,
Mar 23, 2017, 9:49:29 AM3/23/17
to LINOROBOT
Hey Alex,

Three wheeled omni robots and stepper motor is not supported. Although you can reuse the firmware without much changes. I foresee most of the amendments will be in moveBase() function. https://github.com/grassjelly/linorobot/blob/master/arduino/firmware/src/lino_base_2wd.ino#L213-L223im

What you can do is to recreate the getRPM function here https://github.com/grassjelly/linorobot/blob/master/arduino/firmware/lib/kinematics/Kinematics.cpp#L60-L67 to return the correct rpm values you need for your motor based on the kinematics of a  three-wheeled robot. You can check the full documentation of the library here: https://github.com/grassjelly/kinematics

As for the spin() function, you can replace it with the stepper library you use to actuate your stepper motors. Just find a way to translate the returned rpm values to something the stepper motors will understand.


Aarlex

unread,
Mar 24, 2017, 1:43:46 AM3/24/17
to LINOROBOT
Hi Juan,

Thanks, I will test this in my free time. 

Alex

kvsr...@gmail.com

unread,
Jun 3, 2017, 6:39:17 AM6/3/17
to LINOROBOT
Hi, 

First of all thank you for making Linorobot, I have been looking for ROS help and I found this project 
I have acquired almost all the things and I am now in the process of building the 2wd version of linorobot

Teensy 3.5
GY-85 IMU Sensor Module
Pololu VNH5019 Dual Motor Driver 
Parallax Motor (95 RPM) & Wheel Kit with Quadrature Encoder (144 encoder positions per revolution) 
Microsoft Kinect
Laptop with i5 & 4GB RAM
Octagon shape wooden Base  (self-made) and 
I installed ROS Indigo on Ubuntu 14.04.
I would like to know, what are the files need to modify to work Teleop and autonomous.
can any one help me ..?

Many thanks
Vas

Juan Miguel Jimeno

unread,
Jun 4, 2017, 11:30:51 AM6/4/17
to LINOROBOT
Hi Vas,

Looks like you got all your parts ready. You can check out the tutorial how to build the 2WD platform here: https://linorobot.org/getting-started/.

Good luck and happy building. :)

kvsr...@gmail.com

unread,
Jun 5, 2017, 1:14:01 AM6/5/17
to LINOROBOT
Thank you Juan.

Vas. 

Craig Burnett

unread,
Jul 28, 2018, 9:38:46 PM7/28/18
to LINOROBOT
Hi Juan,

Just to get my first stupid question out of the way, just looking at how difficult it is to add different sensors etc. You would need to change the lino_base_config.h add new drive .h and .cpp files under firmware libraries. include under firmware.ino but I guess there is more to it than that?

Thanks
Craig

Juan Miguel Jimeno

unread,
Jul 29, 2018, 8:42:55 AM7/29/18
to LINOROBOT
Hi Craig,

Can you post this question as a new thread?

Thanks

Reply all
Reply to author
Forward
0 new messages