Archr Hubo DRC
The ARCHR controller was able to perform peg-in-hole and maintained accurate control of the end effectors. A stereovision system could not be implemented in openrave due to constraints with instantiating a camera in openrave within a virtual machine. A stereovision system would have offered an immersive controller and could be implemented in the future on a hard install of Linux, or using Gazebo. Source code for operating our controller in Gazebo is included in the gazebo directory of the archr_drc github folder, but not explained in this article and left for you to explore.
Running the code
1: Get the code from the Lofarolabs Simulation/archr_drc
$ git clone https://github.com/LofaroLabs/Simulation
2: Follow these steps:
$ cd /etc/hubo-ach $ sudo gedit virtualHubo.py
3: Locate the following lines:
if flag == 'nophysics': options.physics=False options.stop=False openhubo.TIMESTEP=ha.HUBO_LOOP_PERIOD print 'No Dynamics mode' else: options.physics=True options.stop=True #Enable simtime if required, or if force by physics options.simtime = (simtimeFlag == 'simtime') or options.physics
4: Add the following code directly under this last line:
options.scenefile = ('/home/archr/projects/archr_Code/Simulation/archr_drc/openrave/peginhole.env.xml');
- where 'archr/projects/archr_code/Simulation' is replaced with the directory where you saved the files.
5: Navigate to the Simulation/archr_drc/openrave folder and fix the directory locations within the following files as well:
- in the objects folder:
6: Connect the physical controller to the PC and power it on. 7: Run the openRAVE simulator with the command:
hubo-ach sim openhubo physics drc
- DRC is optional if you have the robot installed
8: Run the archr_drc.py file in the archr_drc/openrave folder and scan for dynamixels. If you can move the robot on screen with moving the dynamixel arms you have succeeded. 9: If the robot is in a stuck state from last time (or the simulator has frozen) try exiting the simulation (ctrl+z). Then run "hubo-ach killall" and wait a few seconds before starting it again.
- Video demonstration for the physical controller (the archr_drc.py script)
- Video demonstration for the keyboard controller (HuboKeyboardControl.py)
- Note: Valve-turn is a prototype, a sample environment is included in files and can be selected by modifying the 'VirtualHubo.py' file to pick the valve environment instead of the peg.
The Hubo-DRC successfully performed peg-in-hole with our control structure and could not quite complete valve-turn, however a prototype environment is included within the code. It can be selected in the virtualHubo.py file and then updating the file directory locations of the valve environment & object files to your workstation appropriately.