DigitLLComms.jl
Julia package for sending low-level commands and receiving low-level observations for Agility Robotics's Digit Robot.
Installation
- Open your Julia REPL by typing
julia
in your terminal. - Press
]
on your keyboard to enter the package manager - Enter command
add https://github.com/adubredu/DigitLLComms.jl#v0.1
and pressEnter
on your keyboard to install this package. - Press the
Backspace
key on your keyboard to return to the REPL
Notice
- This package communicates with Digit's low-level API via two main ways.
- The first approach, which is the most stable and reliable, is over ROS services. An example of how to use this approach is here. This approach was tested on Ubuntu 18.04 and ROS Melodic. It should however work with any modern ROS 1 versions.
- The second approach uses Julia's nifty ccall functionality to call functions in an extension of Agility Robotics's original low-level API C code. This approach, although works reliably, causes a segmentation fault whenever you quit the program. This is an open bug which I'm still figuring out how to fix. Any help with this will be appreciated.
Both approaches are low-latency and have been used to run 400Hz controllers on the physical digit robot.
Usage
First approach
Open a linux terminal and run the following commands to start up the ROS service communication with Agility Robotics's low-level API in simulation.
cd DigitLLComms.jl/src/sim
./run_sim.sh
If running on the physical digit, replace ./run_sim.sh
with ./digit_real.sh
.
After doing this, you can check this example for example usage.
Second approach
Check the examples in examples except those labelled with "ros" for example usage.
This example implements a joint configuration reference standing controller with the second approach.