|Robocontroller||Analog Input Ports with 3-pin Connector||Digital I/O Ports with 3-pin Connector||PWM Ports||16Mhz ATEMGA644p Processor||Dual TTL Serial Ports||3 Three-pin DYNAMIXEL Srvo Ports||ISP Programming Port||FTDI Serial Communications Port||XBee Socket||DC Screw Terminal||DC Barrel Jack||Seperate Power Bus for Hobby Servos||Dedicated I2C Port||2x DC Brushless Moto Controllers|
The ArbotiX-M Robocontoller, designed by Vanadium Labs is at the heart of every Interbotix robotic kit. This Arduino compatible board is an advanced microcontroller solution for driving BIOLOID and DYNAMIXEL based robots. The ArbotiX-M is loaded with features; ROS ready, open and easy to use protocols, options for tethered, wireless or onboard autonomous control, all driven by an ATMega644p Microprocessor.
The ArbotiX-M Robocontroller is an updated version of the original ArbotiX Robocontroller. The ArbotiX-M shared the same processor and many of the same features - this makes setup and use very similar.
|Quick Start Guide|
|Setting DYNAMIXEL IDs with the Dynamanager|
|ArbotiX-M Hardware Overview||ArbotiX Hardware Overview|
|Configuring XBees for the ArbotiX|
|LiPo Battery Guide|
|Communication and Controllers|
|ArbotiX Commander Setup|
|Commander Console Setup|
|Arm Control Setup|
|Advanced Programming guide for the ArbotiX|
|Powering the ArbotiX-M||Powering the ArbotiX|
|Advanced Use of the TR DYNAMIXEL Servo Tool|
|ArbotiX Library and Hardware Files|
All the InterbotiX robots turrets, arms, and crawlers use DYNAMIXEL servos. These servos all have positional feedback, allowing the ArbotiX-M Robocontroller to read the current position of each servo. This makes it possible to physically pose an InterbotiX robot, then capture the positions for each servo, allowing the user to save/capture the current pose. By capturing multiple poses, a user can create a sequence that can be repeated.
This firmware does not use any Inverse Kinematic calculations to position the servos - it simply moves the servos to a pre-set position. Please see the 'Demo' section for your Robot for more information on code examples that us IK engines.
The ArbotiX-M Robocontroller can be used to easily 'play' a sequence of poses on DYNAMIXEL servos. These poses can run automatically, triggered by an outside input (like a pushbutton) or integrated into more advanced code.
This tutorial can be used in conjunction with the DYNApose tutorial. The DYNApose tutorial will help you to capture a series of poses while this tutorial will help you integrate those poses into new code.
This firmware does not use any Inverse Kinematic calculations to position the servos - it simply moves the servos to a pre-set position. Please see the 'Demo' section for your robot for more information on code examples that use IK engines.
The ArbotiX-M is a great Arduino based microcontroller that allows you to control DYNAMIXEL servos. This page will help you pick everything you need to get started with the ArbotiX-M and DYNAMIXEL Servos.
In this guide you will learn how to setup and program your Arbotix-M Robocontroller. This guide will also work for the orginal ArbotiX Robocontroller.
This guide will teach you how to ID servos using an ArbotiX Robocontroller and a computer.
There are two parts to the commander protocol - the sending and the receiving ends. The receiving end is usually an ArbotiX robocontroller using the commander library to accept, parse and use commander data sent to it. The sending end does not require a specific library, just the ability to send a serial packet as outlined below. The commander packet is designed to be sent via a remote control like the ArbotiX Commander or Virtual Commander, though it can be sent via any device that can send a TTL serial signal to the arbotix or an XBee.
Enter in a value for each parameter. Be mindful of the limits for each parameter. This calculator will not check limits. Once all values are present, press 'Calculate' to generate a serial packet. You can then use the serial packet below the 'calculate' button in your application.
|Packet #||Description||Commander Library Call||Mixed Byte Commander Call|
|2||Look Joystick (Vertical)||command.lookv||command.pan(High Byte)|
|3||Look Joystick (Horizontal)||command.lookh||command.pan(Low Byte)|
|4||Walk Joystick (Vertical)||command.walkv||command.tilt(High Byte)|
|5||Walk Joystick (Horizontal)||command.walkh||command.tilt(Low Byte)|
|7||Extended Instruction Byte||command.ext|
The first four fields correspond to the commander's joysticks. Each axis on the left joystick (look) and the right joystick (walk) take up one field. When the joystick is centered, the value transmitted is
128. When the joystick is all the way left (vertical) or down (horizontal) the value is 3. When the joystick is all the way right(vertical) or up (horizontal) the value is 253.
On the receiving end, the commander library will shift these values for you. The shift is a simple
value - 128 operation. So when you send a
128, the receiving end will read a
0. When you send a
3, the receiving end will read a
-125, and when you send a
253, the receiving end will read a
It is also possible to combine 2 joystick bytes into a single high resolution value. The two
look byte can be read as
pan and the two
walk bytes can be read as
tilt by the commander library on the receiving end. The vertical byte is always the High byte while the horizontal byte is the low byte. Usually this is used to send a 10-bit analog value (0-1023) though it can send up to a 16-bit value (0-65535).
|Button||Left Top||Right Top||Left 6||Left 5||Left 4||Right 3||Right 2||Right 1|
The extended byte can be used to send additional data. The exact function will depend on the firmware of your receiving robot.
This guide will help you build and set up your ArbotiX Commander.
The Commander Console is an Arduino based control box that will allow you to precisley control the InterbotiX Robot Arms.
Currently the Commander Console is offered as a DIY project. To build a commander console you will need the following:
The Arm Link library, firmware, and software will allow you to control InterbotiX arms by sending an absolute value to each coordinate. These coordinates are sent over a serial port connection to the ArbotiX Robocontroller that controls the arm. The ArbotiX Robocontroller will receive the coordinates, do any required calculations, and then move the servos appropriately.
In the basic XBee configuration guide, we set up our XBees on a fixed channel. If another XBee or other device is on the same 2.4Ghz channel, we may see reduced range or communication problems.
Below are a set of configuration options that will allow you to set up a coordinator / end device network. When the Coordinator starts up, it will do a scan to look for usable channels. Once it has chosen a channel, it will wait for end-device XBees to join its network. The End device will be setup to scan channels, looking for a coordinator.
While this does solve our channel problem, it does have a few downsides. First, the Coordinator XBee should be powered on before the End Device XBee, as the coordinator needs to set up the network first. Secondly, channel setup and scanning can take a few seconds, so the connection will not be as instantaneous as with a standard setup.
Below are all of the configuration settings to make the coordinator / end point network function. You'll notice that we have put the Coordinator XBee in the robot while the end point goes in the commander. We have done this because if you turn on/power cycle your robot, its generally easier to power cycle your controller than the other way around. If you however intended on setting up a mesh network where one controller talked to many robots, you should consider putting the Coordinator XBee in the ArbotiX Commander.
|Parameter||XBee # 1 (For ArbotiX Commander)||XBee # 2 (For ArbotiX Robocontroller)|
|Destination Low ID DL||2||1|
|16 bit source address ID MY||1||2|
|Coordinator Enable CE||Coordinator ||End Device|
|End Device Association A1||000b||0111b|
|Coordinator Association A2||110b||000b|
Before you can communicate wirelessly between your ArbotiX Commander and the ArbotiX Robocontroller in your robot, you'll need to configure your XBees. There are 4 parameters we will need to change.
This guide will show you how to configure your XBee modules for your InterbotiX Kits. This guide assumes that you've already completed the ArbotiX-M Getting Started Guide.
InterbotiX Robot Kits that use the ArbotiX-M Robocontroller can be controlled wirelessly via XBee 1mW Series 1 Communication modules . These modules will create a transparent serial link between the ArbotiX-M Robocontroller and an external controller like an ArbotiX Commander or a computer via a XBee-USB Converter.
XBee modules are incredible powerful and can be configured with a wide variety of features. In this guide we're only going to configure the bare basics to get your XBee modules working with your kit. There are 4 parameters we will need to change as well as a fifth optional parameter.
To configure the software you'll need to use the XBeeXCTU Software. This software is freely available from Digi, the XBee manufacturer. You can find installer files for XCTU here.
When you click on the link for your specific operating system, you may be taken to a page where you are encouraged to register up for Digi's website. However there is also a direct link to your download, just click on
Or go directly to your content.
Once the file is downloaded, open the file to start the installation process. Once completed you should be able to run XCTU.
Mac users may need to install an older version of Java to run XCTU - follow the prompts/links to Apple's Website to Install the required version of Java.
The following video will walk you through connecting the XBees to your computer, configuring them, and testing them. Below the video there is a list of parameters for each XBee.
NOTE: XBee modules run on 3.3V. Be sure to set the switch on your UartSBee to 3.3V before plugging in or risk permanently damaging your XBee
|Parameter||XBee # 1 (For ArbotiX Robocontroller)||XBee # 2 (For ArbotiX Commander)|
|Pan ID (Hex)||100||100|
|Data Rate||38400 ||38400 |
Once your XBees are configured and tested, you can continue with the getting started guide for your robot. If you have not already setup your ArbotiX Commander. you will need to do that now. You will also need to install commander compatible code onto your ArbotiX Robocontroller/ robot
If you're having trouble with XBee range or are interested in advanced XBee features, see our Advanced Configuration Guide
This guide will give you some insight into working with Lithium Polymer (LiPo) batteries with the ArbotiX Robocontroller and InterbotiX Robot Kits. This guide is not intended as a comprehensive Li-Po Battery /LiPo Charger guide. Make sure to read any instructions or warnings included with your LiPo Charger and Batteries.
There are many ways to power the ArbotiX board. For stock InterbotiX kits, users will only need to worry about the 5v Power BUS anf the VIN Power BUS. This guide will discuss those as well as the ArbotiX's other power BUSes and options.
There are two ways to program the ArbotiX - via the FTDI port, or via the ISP port. Each programming method has its pros can cons, and this guide will discuss some of them.
There are many ways of powering the ArbotiX - this guide will discuss the two primary methods.
The TR DynaManager is a small application that will assist you in setting the ID of DYNAMIXEL servos. The application was built using the Processing IDE (which uses the Java programming language). Most users will be able to use the Binary Executables, but some may want to run the program from within the Processing IDE for a variety of reasons:
Coming soon: More information on the ArbotiX Library and Hardware files