All Projects → KumarRobotics → vicon

KumarRobotics / vicon

Licence: other
Code for working with the Vicon tracking system

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects
Makefile
30231 projects

Projects that are alternatives of or similar to vicon

imu vn 100
ROS driver for VN-100 of VectorNav Technologies
Stars: ✭ 35 (+75%)
Mutual labels:  ros, ros-driver
phidgets drivers
ROS drivers for various Phidgets devices
Stars: ✭ 30 (+50%)
Mutual labels:  ros, ros-driver
katana driver
This stack contains hardware drivers, Gazebo plugins and other basic functionalities for the Neuronics Katana family of robot arms.
Stars: ✭ 16 (-20%)
Mutual labels:  ros, ros-driver
vicon2gt
Vicon-IMU fusion for groundtruth trajectory generation.
Stars: ✭ 41 (+105%)
Mutual labels:  motion-capture, vicon
microstrain inertial
ROS driver for all of MicroStrain's current G and C series products. To learn more visit
Stars: ✭ 44 (+120%)
Mutual labels:  ros
the-Cooper-Mapper
An open source autonomous driving research platform for Active SLAM & Multisensor Data Fusion
Stars: ✭ 38 (+90%)
Mutual labels:  ros
gazebo cars
Gazebo Models for different types of cars
Stars: ✭ 31 (+55%)
Mutual labels:  ros
smacha
SMACHA is a meta-scripting, templating, and code generation engine for rapid prototyping of ROS SMACH state machines.
Stars: ✭ 15 (-25%)
Mutual labels:  ros
robotiq 2finger grippers
ROS packages enabling the control, visualization and simulation of the Robotiq 2 Fingers Adaptive Grippers model version C3
Stars: ✭ 59 (+195%)
Mutual labels:  ros
robomaster s1 can hack
DJI RoboMaster S1 CAN Hack
Stars: ✭ 71 (+255%)
Mutual labels:  ros
tensorflow ros cpp
Catkin-friendly C++ bindings for tensorflow.
Stars: ✭ 60 (+200%)
Mutual labels:  ros
yak
yak (yet another kinfu) is a library and ROS wrapper for Truncated Signed Distance Fields (TSDFs).
Stars: ✭ 25 (+25%)
Mutual labels:  ros
mycobot ros
A ros package for myCobot.
Stars: ✭ 76 (+280%)
Mutual labels:  ros
ros dmp
Dynamic Motion Primitives
Stars: ✭ 25 (+25%)
Mutual labels:  ros
openPerform
Check out the various styles and effects OpenPerform has to offer with our BVH animation demo!
Stars: ✭ 24 (+20%)
Mutual labels:  motion-capture
double laser mapping location
ros1 gazebo cartographer amcl
Stars: ✭ 41 (+105%)
Mutual labels:  ros
dofbot-jetson nano
Yahboom DOFBOT AI Vision Robotic Arm with ROS for Jetson NANO 4GB B01
Stars: ✭ 24 (+20%)
Mutual labels:  ros
py trees ros
ROS extensions and implementations for py_trees
Stars: ✭ 80 (+300%)
Mutual labels:  ros
isaac ros apriltag
CUDA-accelerated Apriltag detection
Stars: ✭ 42 (+110%)
Mutual labels:  ros
lidar-sync-mimics-gps
Open-Source LiDAR Time Synchronization System by Mimicking GPS-clock
Stars: ✭ 52 (+160%)
Mutual labels:  ros

Build Status

Vicon Driver

The driver consists of 2 parts:

  • vicon_driver: This contains a base ViconDriver class which handles all the commmunication with the vicon PC and has hooks for the subject/unlabeled markers publish callbacks (see ViconDriver.h)
  • Interface layer: (IPC & ROS for now) Hooks into the callbacks supplied by the ViconDriver class and actually publishes the message

The vicon_driver design is intended to provide flexibility in terms of supporting any interface, you just need to provide the ViconDriver class with callback functions which will be called with the vicon data structures as their arguments. This design is not the most efficient in terms of CPU usage since you need to convert the data provided by the ViconDriver class into whatever format the interface layer needs to publish, but I believe that the flexibility it provides outweighs the extra CPU cycles required.

There is also an implementation of loading/storing calib (zero pose) files in YAML format using yaml-cpp (see ViconCalib.h). Loading calib files automatically is implemented in both the interface layes (IPC & ROS) but the ROS interface layer also provides a service which you can call to set the zero pose and automatically save it in the calib file.

License

vicon_driver and the IPC interface are licensed under the Apache-2.0 license.

The ROS interface is licensed under the BSD-3-Clause license.

Compiling

ROS

First, add the ros folder in this repository to your catkin workspace. Then, run

catkin_make

Example usage

ROS

Check the launch files in the vicon and vicon_odom packages. The output from the vicon node has a lot more information but most likely you'll want to use the vicon_odom package which generates odometry information from the position and orientation provided by Vicon.

Getting Odometry Message from Vicon

  • Launch the vicon.launch file in vicon package, make sure you set the vicon_server correctly

    roslaunch vicon vicon.launch
    
  • For each of the model you have, launch vicon_odom.launch in vicon_odom package. Note that every vicon_odom you launched will now be run under the namespace vicon. For example, if your model name is obj1, then the vicon_odom node will be named vicon/obj1, the published odometry message will be named vicon/obj1/odom. Also, you can provide a child_frame_id for the published odometry message, if not, it will be defaulted to model.

    roslaunch vicon_odom vicon_odom.launch model:=<model> child_frame_id:=<frame> publish_tf:=<bool>
    

Calibrating a Model

  • Launch the calibrate.launch file in vicon/launch using your ViconModelName

    roslaunch vicon calibrate.launch model:=ViconModelName
    
  • In a new terminal, echo the zero_pose estimate from vicon. Note: you will not see anything yet.

    rostopic echo /vicon_calibrate/zero_pose
    
  • In another terminal, toggle the calibration routine:

    rosservice call /vicon_calibrate/toggle_calibration
    
  • Now, check to make sure the zero_pose provides reasonable values

  • Untoggle the calibration routine

    rosservice call /vicon_calibrate/toggle_calibration
    
  • Close the running launch files and verify that a new calibration file was written to ./vicon/calib

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].