Summer is officially over, time for some robotics!

The General finally got his head assembled over the summer! I made an extra bracket that connects the head to the body so I can continue using the stand I made.

With all 20 servos connected, I tried running the robot motion editor, but for some reason the left shoulder servo tried to move outside its limit – causing the NUC to shutdown. After some troubleshooting with the Dynamixel Wizard, I found out I had set the CCW_Angle_Limit to 0. After changing it to 3200, I can successfully activate (or play) the default standing pose!

I tried the ps3_demo, but I can’t get it to work – always return with “Robot detected in sitting position” oh well, next time!

Robot Assembly

I have put most of my effort in assembling the robot and updating the assembly document while building. The main bot is now completed, except for the head and the grippers. I forgot to order the idle bearings for the MX-28 when I put in the big order back in January, but they should arrive in a couple of weeks. Also been sourcing parts for the head assembly, should arrive before Easter in addition to parts that need to be 3D printed.

Next step for the building part is to finish off wiring all the motors and power supply. For now the servos are running off the 12v10a SMPS power supply and the NUC is using its original power supply, so I need to look into batteries and wiring everything together. My idea is to add an On-Off-On switch between the NUC and the main power so I have the option of powering it either from batteries or the power supply. Alternatively it should be possible to power it from a external power supply while the batteries are charging without the need of powering down.

Robotis Dynamixel SDK

I’ve started on the Robotis Dynamixel SDK Quick Start Guide. Basically it is 9 videos that explain how to get a Dynamixel servo moving.

In episode 3.3 Software Preparation – Linux there is a criteria that gcc needs to be at least 5.4, me running ubuntu 14.04, I had 4.8 so I had to follow this guide on how to install it for my setup as a simple “sudo apt-get install g++-5” doesn’t work right out of the box on 14.04.

If gcc -v / g++ -v still says 4.8, then you need to update symlinks. Instructions are in the guide mentioned above.

As I am using the USB2AX instead of the Robotis USB2Dynamixel, so after adding some source files from the Xevel usb2ax repo, I was able to compile and run the “read_write.cpp” example from Robotis.

The code can be found here and next step is to get it working with the ps4 controller.

Dualshock 4

I got a new joystick for Christmas, an PlayStation 4 Dualshock controller. I decided that today was the day for setting it up. I assumed it wouldn’t be a big task, but I encountered some problems booting the NUC. I ended up disassemble the bot in order to remove one of the RAM modules. Need to investigate this further as I want to be able to use the full 16 GB that I have available.

Anyway, back to the DS4, the Bluetooth was somehow disabled, don’t know what have happened as I have used it previously with the DS3.  A quick

 sudo chmod +x /usr/sbin/bluetoothd
 sudo service bluetooth restart

did the trick. All you need to do then is to “pair” the controller just like any other bluetooth device.  Push and hold both the “PlayStation” and “Share” buttons at the same time until the controller starts blinking. It is now in “pairing” mode, then pair the controller with the computer using the bluetooth menu (bluetooth icon–>Set Up New Device…)!

sudo apt-get install jstest-gtk

This allowed me to setup the joystick, and display the raw values of the joystick. I was not able to see any data from the accelerometer and  gyroscope. I’ll leave that for now and revisit if I need this down the road.


-P- rebooted

I decided to stop my previous project, the ROSbonova, almost a year ago now as I decided it wouldn’t be able to deliver what I am looking for. Since then I have gathered parts and saved up some money to build a “HR-OS5 General Grievous” clone.

I had some difficulties getting the subdomain settings right for the blog and the wiki, and I have some other minor things that I want to fix before I’m satisfied with the setup, but I’ll I aim to start working on the robot and sharing the progress here in the blog.

I’ve already got most of the mechanical parts assembled, I’m missing some servos before it is complete. The idea is to write a small application to control each servo individual to find max, min and center limits. Then I might do the same with ROS integrated, making two small and easy tutorials for Dynamixel and ROS.