AQUARM SDK
The AQUARM SDK provides C++ and Python interfaces for robot kinematics, trajectory generation, and KCAN communication.
Components
| Component | Purpose |
|---|---|
| Robot model | Load a root-to-tip chain from a URDF with revolute, continuous, and fixed joints |
| Kinematics | Compute forward kinematics, Jacobians, and damped least-squares inverse kinematics |
| Trajectory | Generate quintic joint trajectories between start and goal configurations |
| KCAN | Connect to the controller, read joint feedback, and send joint commands |
| MuJoCo | Simulate the arm and gripper using the bundled MJCF model |
The C++ API is exposed through kalman_ik.hpp and kcan_sdk_user.h. Python examples use the bundled kalman_ik_py and kcan_sdk_user_py modules.
Command Flow
The supplied IK examples control one arm through a direct KCAN connection:
Target pose + URDF model
↓
Current joint feedback → IK solution
↓
Quintic joint trajectory
↓
KCAN SDK → ControllerThe examples connect to 192.168.1.9 using ports 20000 and 20001, request position mode, and send joint targets approximately every 5 ms. Adjust the connection settings in the example source to match your controller.
Positions are expressed in meters and joint angles in radians. The twist/Jacobian component order is [linear; angular].
Robot Descriptions
The AQUARM Description repository contains URDF/Xacro models, meshes, RViz configuration, and ROS 2 viewers. The SDK examples load their bundled model from resources/urdf/aquarm_origin_with_gripper.urdf.
