Results 1 to 2 of 2

Thread: Robotis OpenCR1.0 boards

  1. #1

    Robotis OpenCR1.0 boards

    Not sure who if anyone might be interested,

    The Turtlebot 3 robots come with the OpenCR boards, which they use to control the servos plus several other tasks. At first look you could say it is similar but the next generation of the boards like the Trossen Arbotix-Pro (which appears to be discontinued?). These boards are not cheap at about $180 and currently hard to get your hands on. They have a nice WIKI for this board, which they have been very proactive on incorporating updates and suggestions to it.

    But I am actually having a lot of fun with the one that comes with TB3 and I am probably spending too much time working with it! versus working with ROS on the HOST computer (my case now UP board was RPI3). I do need to get my TB3 back into one piece I am having almost as much fun with it as playing with a Teensy boards... almost

    To me there are several interesting aspects about using the OpenCR board with ROS and the turtlebot3 or other robots.

    First off the board is setup, to use Arduino. They have a standard way to install Arduino using the board manager (instructions are in wiki). This gives you the standard releases of their Arduino stuff.

    If you are like me, you may want to setup to use their development branch. Yesterday I put up a write-up on how I did it on RobotSource. These days I am spending more of my time up on RobotSource as well as Robotis Forum, as the main Robotis developers including their TB3 developers read and respond to messages up there. Likewise they respond quickly to Pull requests and Issues raised on their github projects.

    They are doing a lot of work to document these boards, including the WIKI which I linked to earlier. There is also chapters in the book ROS Robot Programming, which describe these boards. This book was written by the main TB3 developers. A soft bound version of the book came with my TB3, but you can also download for free a PDF from RobotSource.

    But what I find most interesting, is it's usage with ROS and specifically the division of work between the host and the controller board.

    With my earlier attempts to understand ROS (example the ROS Hexapod code base), the controller board such as the USB2AX was relegated to simple forwarding messages to and from the servos, which is fine.

    Likewise I believe that ROS setups probably including TB3 using the Arbotix-Pro probably had most/all of the smarts on the host. Again they only had the Arbotix Pro control the servos and read the IMU sensors, which were then fed back up to the host to process.

    The TB3 code using the OpenCR board works differently. In fact you can actually drive the rover around just using the OpenCR board and never even boot the RPI3 (or UP board).

    That is the OpenCR board creates a ROS node using the ROSSerial code base, where it subscribes to several topics and likewise it publishes several topics. You can see some of this in the Arduino startup code:

    Code:
    void setup()
    {
      DEBUG_SERIAL.begin(57600);
    
      // Initialize ROS node handle, advertise and subscribe the topics
      nh.initNode();
      nh.getHardware()->setBaud(115200);
    
      nh.subscribe(cmd_vel_sub);
      nh.subscribe(sound_sub);
      nh.subscribe(motor_power_sub);
      nh.subscribe(reset_sub);
    
      nh.advertise(sensor_state_pub);  
      nh.advertise(version_info_pub);
      nh.advertise(imu_pub);
      nh.advertise(cmd_vel_rc100_pub);
      nh.advertise(odom_pub);
      nh.advertise(joint_states_pub);
      nh.advertise(battery_state_pub);
      nh.advertise(mag_pub);
    
      // KurtE
      nh.advertise(tof_dist_pub);
      ...
    The last part was where I am experimenting adding in some TOF sensors, to hopefully do cliff detection.

    I should mention, that there are still other ROS nodes that are created and run on the Host. Things like processing the Image data or the HLS sensor, mapping, navigation... So again as I play to add new stuff, it will be interesting on deciding where things should be processed.

    Assuming that I continue to have fun doing this, at some point I might try making own version of the ROS Hexapod code base using this board (or maybe a teensy 3.6 version...). It will be interesting to see where it makes sense to draw the line on what goes where. Hopefully there will be others who would also like to work on something like this as it is more fun to interact.

    Anyway having some fun and thought I would share.

  2. #2

    Re: Robotis OpenCR1.0 boards

    Again not sure how many people might be interested, but I have been hacking on the OpenCR Arduino installation, to make it easier for myself to build the Arduino program that runs on the OpenCR board which is connected to the UP board, to be able to build the program on my PC and have it automatically download the compiled binary to my UP board, where I have a script looking for that file being changed and if so, convert the format to the OpenCR format and then use the OpenCR app to program the board...

    So far it is working. Currently I am using pscp in the Arduino install (boards.txt and platform.txt). You can choose to download using the normal method (local) or you can choose to update using the remote... I am using Putty saved configurations, and currently have it setup using secure keys between PC and UP board... More details up at: https://community.robotsource.org/t/...op-branch/1412

    At some point soon, will update it to hopefully work with Ubuntu box talking to Ubuntu as well...

    And I believe can do the exact update to the OpenM 9.04 arduino install. Will need different sketch on Host, but...
    And maybe soon Teensy as well.

    At some point may also try to get rid of the need for shell script on other end, would be nice to use plink to remotely do the commands, but need to figure out how to add second command to this phase of Arduino build...

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. Gun controller boards so far
    By jwatte in forum Arbotix, Microcontrollers, Arduino
    Replies: 12
    Last Post: 01-12-2014, 07:58 PM
  2. Designing a shield for Arduino Rev 3 boards that also work with non Rev 3 boards...
    By KurtEck in forum Arbotix, Microcontrollers, Arduino
    Replies: 4
    Last Post: 10-23-2012, 08:06 PM
  3. Bioloid Boards Again
    By JonHylands in forum Humanoids, Walkers & Crawlers
    Replies: 57
    Last Post: 02-26-2010, 12:43 PM
  4. Atmel AVR USB Boards
    By Azinman in forum Software and Programming
    Replies: 3
    Last Post: 04-03-2009, 10:48 PM
  5. GroovyGameGear I/O Boards
    By Matt in forum Arbotix, Microcontrollers, Arduino
    Replies: 10
    Last Post: 08-14-2008, 10:51 AM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •