by PedroR » Wed Jan 25, 2012 5:04 pm
by PedroR
Wed Jan 25, 2012 5:04 pm
1) Presumably, in time, you could do the image processing on-board using OpenCV instead of relaying to a Windows PC to use RoboRealm?
Yes it is definitelly possible to do the image processing onboard. What happens with this particular project is that the board we're using is based on a RALINK RT3050F chip which does not have enough horsepower to do OpenCV.
If you use other boards such as an eBox or a BeagleBoard (or BeagleBone) you can definitely do the image processing onboard.
2) How exactly are you physically connecting to the wCK bus? Are you hacking/soldering one of the wCK twisted module cables or do you have access to some female connecors? If so, where can I get hold of them?
The approach we chose to use was to retain the RBC controller and connect the Serial pins to RX and TX on the Bluetooth connector.
In the end we chose not to connect directly to the wCK bus.
There are
a number of reasons to retain the RBC controller as it takes care of a number of useful functionalities:
- It serves as a Bus a hub to connect different chains of servos
- It manages power and battery (and automatically selects which poer source to use)
- It has sensors attached to it (Acceleration, Distance, Sound) that we want to be able to reuse and can be queried via the RBC Serial protocol
- The RBC protocol also offers additional features such as the ability to run pre recorded motions and standard motions.
- Finally our board has a COMM at TTL level (3.3V) which is a direct match to the Bluetooth COMM port on the RBC board 8so no need for level shifters or additional hardware).
- We also use one Servo cable (that we stripped down to expose only the Vdd and GND pins) to power our Voltage regulator that in turn powers the board. This is optional (ideally you would power your controller with a dedicated battery but for the sake of simplicity this the approach we chose and saves us a lot of hassle and hardware)
There is a large room for debate whether or not to retain the RBC controller board. In our case it made a lot of sense as it saved us a great deal of work.
In the end the RX and TX pins on our RALINK board connected directly to RX and TX of the BT socket on the RBC controller. Minimal soldering was only required to get the Power to the board.
Now for the advanced topic part:
If you really want to go Pro on this approach and retain the RBC controller I would recommend using an alternative firmware by l3v3rz.
His (excellent)
DCMP firmware loads into the RBC controller and offers a direct bridge from the Serial port and BT socket to the wCK bus.
The firmware can be downloaded here
http://code.google.com/p/robobuilderlib/wiki/DCMP (the wiki page is very well written and you grasp the the idea of how it works very quickly and thoroughly)
All packets follow the protocol/format of packets to the wCK bus and additional, great features, are included:
- emulates a special servo ID (30 I believe) where you can query all the sensors.
- includes extended ids to implement different I2C devices on the I2C port.
This means that if you want to remove the simple Acc Sensor and replace it with a more sophisticated IMU (such as this one
http://robosavvy.com/store/product_info ... ts_id/1247) you can do it.
Just solder on the I2C port in place of the Accelerometer and the special firmware includes the necessary commands to "speak" to any I2C device.
For our application we haven't yet decided which firmware we'll use but as of right now, but it looks like we'll be sticking with the default one from Robobuilder.
The reasons for this are mostly of a commercial nature: ie our target audience are customers who aren't necessarily too technical and thus we're trying to stay within the default set up as much as possible.
It doesn't mean we won't be playing with this firmware internally for other possible applications though.
As a final note, i
n case you wish to port the application 8including OpenCV) to an onboard processor using eBox or beaglebone (or any other), the way to connect the board to the RBC controller is to use a USB to TTL converter (3.3V) (such as this one
http://robosavvy.com/store/product_info ... ts_id/1297) and connect the USB to the "brain" and a couple of jumper wires to RX and TX on the BT socket.
The USB to Serial converter will create a Virtual COMM port on the PC so your code should run without the need for any modification.
If you have any additional questions or would like to brainstorm some more ideas, let me know as I'd be happy to help!
1) Presumably, in time, you could do the image processing on-board using OpenCV instead of relaying to a Windows PC to use RoboRealm?
Yes it is definitelly possible to do the image processing onboard. What happens with this particular project is that the board we're using is based on a RALINK RT3050F chip which does not have enough horsepower to do OpenCV.
If you use other boards such as an eBox or a BeagleBoard (or BeagleBone) you can definitely do the image processing onboard.
2) How exactly are you physically connecting to the wCK bus? Are you hacking/soldering one of the wCK twisted module cables or do you have access to some female connecors? If so, where can I get hold of them?
The approach we chose to use was to retain the RBC controller and connect the Serial pins to RX and TX on the Bluetooth connector.
In the end we chose not to connect directly to the wCK bus.
There are
a number of reasons to retain the RBC controller as it takes care of a number of useful functionalities:
- It serves as a Bus a hub to connect different chains of servos
- It manages power and battery (and automatically selects which poer source to use)
- It has sensors attached to it (Acceleration, Distance, Sound) that we want to be able to reuse and can be queried via the RBC Serial protocol
- The RBC protocol also offers additional features such as the ability to run pre recorded motions and standard motions.
- Finally our board has a COMM at TTL level (3.3V) which is a direct match to the Bluetooth COMM port on the RBC board 8so no need for level shifters or additional hardware).
- We also use one Servo cable (that we stripped down to expose only the Vdd and GND pins) to power our Voltage regulator that in turn powers the board. This is optional (ideally you would power your controller with a dedicated battery but for the sake of simplicity this the approach we chose and saves us a lot of hassle and hardware)
There is a large room for debate whether or not to retain the RBC controller board. In our case it made a lot of sense as it saved us a great deal of work.
In the end the RX and TX pins on our RALINK board connected directly to RX and TX of the BT socket on the RBC controller. Minimal soldering was only required to get the Power to the board.
Now for the advanced topic part:
If you really want to go Pro on this approach and retain the RBC controller I would recommend using an alternative firmware by l3v3rz.
His (excellent)
DCMP firmware loads into the RBC controller and offers a direct bridge from the Serial port and BT socket to the wCK bus.
The firmware can be downloaded here
http://code.google.com/p/robobuilderlib/wiki/DCMP (the wiki page is very well written and you grasp the the idea of how it works very quickly and thoroughly)
All packets follow the protocol/format of packets to the wCK bus and additional, great features, are included:
- emulates a special servo ID (30 I believe) where you can query all the sensors.
- includes extended ids to implement different I2C devices on the I2C port.
This means that if you want to remove the simple Acc Sensor and replace it with a more sophisticated IMU (such as this one
http://robosavvy.com/store/product_info ... ts_id/1247) you can do it.
Just solder on the I2C port in place of the Accelerometer and the special firmware includes the necessary commands to "speak" to any I2C device.
For our application we haven't yet decided which firmware we'll use but as of right now, but it looks like we'll be sticking with the default one from Robobuilder.
The reasons for this are mostly of a commercial nature: ie our target audience are customers who aren't necessarily too technical and thus we're trying to stay within the default set up as much as possible.
It doesn't mean we won't be playing with this firmware internally for other possible applications though.
As a final note, i
n case you wish to port the application 8including OpenCV) to an onboard processor using eBox or beaglebone (or any other), the way to connect the board to the RBC controller is to use a USB to TTL converter (3.3V) (such as this one
http://robosavvy.com/store/product_info ... ts_id/1297) and connect the USB to the "brain" and a couple of jumper wires to RX and TX on the BT socket.
The USB to Serial converter will create a Virtual COMM port on the PC so your code should run without the need for any modification.
If you have any additional questions or would like to brainstorm some more ideas, let me know as I'd be happy to help!