Skip to content

Latest commit

 

History

History
87 lines (69 loc) · 2.63 KB

README.md

File metadata and controls

87 lines (69 loc) · 2.63 KB

Motion Primitive for Robile (Freddy)

Ramping behaviour of the robile platform using motion primitives.

The aim of the project is performing a controlled movement over the ramp using motion primitives for the robile platform robot. Based on previous semester SDP (WS2021) Kelo 500 motion control which uses force control.

You can find videos regarding the project here!

Getting started

Required library

  • Simple Open EtherCAT Master (SOEM) - communication between robot and the actuators. SOEM
  • robif2b - robot control interface robif2b
  • GSL - GNU Scientific Library GSL
  • WS21 SDP repository: Motion Control of the KELO 500 Kelo 500 motion control

[**TODO 1: how to create an install folder (where we keep all SOEM files)?]

[**TODO 2: instructions for WS21 ?]

Building SOEM library

git clone https://github.com/OpenEtherCATsociety/SOEM

Replace STATIC with SHARED on line 72 in CMakeList.txt, it should look like the code block below,

add_library(soem SHARED
  ${SOEM_SOURCES}
  ${OSAL_SOURCES}
  ${OSHW_SOURCES}
  ${OSHW_EXTRA_SOURCES})
target_link_libraries(soem ${OS_LIBS})

Continue building steps:

cd SOEM
mkdir build
cd build
cmake ..
make

Building robif2b library

cd robif2b
mkdir build && cd build
cmake -DCMAKE_INSTALL_PREFIX=<path to install your folder>/install ..
cmake -DCMAKE_C_FLAGS="-I<path to install your folder>/install/include" -DENABLE_ETHERCAT=ON -DENABLE_KELO=ON ..

How to get active wheels (slaves) indexes:

cd SOEM/build/test/linux/slaveinfo
sudo ./slaveinfo <your-ethernet-port-id>

[FYI: get the ethernet port id by running ifconfig or ip a]

Running the code.

cd robif2b/build
make
sudo ./src/example/<name-of-the-executable-file>

How to make any library as package:

TODO: instructions for making a library 

User stories / TODO:

  • Running previous semester SDP (Force distribution).
  • Orientation of wheel units to disired configuration.
  • Align the robot with ramp base.
  • Implement ramp-up behaviour.
  • Integrate sub-modules as a complete state machine.