Robot arm integration kit
The Avular robot-arm integration kit is developed to integrate the Kinova arm on top of the Origin One and use their combination in your robotic use case. The kit consists of some hardware by which you may mount the robot arm on top of the Origin One and connect it to the battery and the internal communication network of the robot, while it also consists of some software illustrating how to use the robot arm from the user-container for further development of your use-case.
The following sections on this page cover the following topics:
Info
The integration kit is specifically designed for the Kinova Gen 3 robotic arm.
Mounting the robot arm
Warning
Power down the robot before mounting the Kinova robotic arm on the Origin One
Warning
The robot arm cannot be used in combination with RTK-GNSS as there is not enough space on top of the Origin One. Therefore, you will need to dismount the RTK-GNSS antenna (which is illustrated below) and its mount as follows:
- Disconnect the RTK antenna plug using a 8mm spanner from the onboard interface of the Origin One and place a cap in the connector.
- Remove all the bolts of the mount that hold the RTK-GNSS antenna on the Origin One. This is a 3D printed mount and, depending on your Origin One configuration, it may also include the lateral rail mounted in the center of the robot between the two longitudal side rails.
- Remove the RTK-GNSS antenna and its mount system.
Note
To prevent any damage to the LiDAR you may remove the 3D LiDAR of the Origin One and place it back after some trial period of the combined Origin One and Kinova robotic arm.
Mount the baseplate on the Origin One
We will start by mounting the complete kit on the Origin One. Please note that Avular's integration kit consists of two baseplates that are pre-mounted on top of ech other, i.e., one large (rectangular) baseplate at the bottom on which a smaller (round) baseplate is pre-mounted.
Place the complete kit on the top of the Origin One, ideally at the center of the Origin One, so that the holes by which the kit will be attached to the Origin One are aligned with the mounting rails of the Origin One. Make sure that the cables of the kit are directed towards the buttons/screen/connectors of the Origin One.
The kit comes with two different style T-slot nuts. Use the thinner one for mounting the baseplate. Take these four, thinner T-slot nuts and slide them carefully in the mounting rails of the Origin One. Make sure to slide one nut to each corner of the rectangular baseplate.
With a screwdriver slide the four T-nuts in the rails further underneath the baseplate so that these T-nuts are perfectly aligned with the holes in each corder of the baseplate. *Be sure that the T-nuts are centered in the rails themselves and not slided to one side of the rails.
Take the four M5x30 bolts that are shipped with the integration kit and fasten them into the T-nuts with a 4 mm hex/allen key.
Mount the robot arm onto the baseplate
Next step is to mount the robot arm on the integration kit. The integration kit does NOT use the Kinova baseplate (shipped with the Gen3 arm), however, it uses a custom baseplate included with this integration kit as a pre-mounted part to the rectangular baseplate.
Therefore, start by loosen the bolts of the custom baseplate that is part of the integration kit you just mounted on the Origin One, and take off this pre-mounted, custom (round) baseplate.
Turn it around and use the four M6x25 bolts that were shipped with the integration kit to fasten the custom (round) baseplate onto the robot arm with a 5 mm hex/allen key.
Place the combined robot arm with custom baseplate back on the larger (rectangular) baseplate of the integration kit that is mounted on the Origin One, and fasten it using the same M6x25 bolts when removing the custom baseplate. Make sure that the connectors of the robot arm are directed to the back of the Origin One near the cables of the integration kit.
Connect and test the robot arm
The last step is to connect the robot arm to the Origin One and test it.
Therefore, connect the cables of the integration kit to the proper ports of the robot arm, i.e., one for powering the robot arm and one for the ethernet connection of the robot arm.
Connect the other end of the cables to the proper ports of the Origin One, i.e., connect the end of the power cable to the Vbat port of the Origin One and connect the end of the ethernet cable to the ethernet port of the Origin One (turn and fasten the connector).
You may use the Tie Wraps that have been shipped with the kit to fasten any loose-hanging cable to the rails of the Origin One. The tie-wraps are reusable, use the thicker T-slot nuts provided with the kit.
Finally, you may power up the Origin One and, once powered, also power up the Kinova robot arm using the power button on the arm itself. Once the arm is booted you may insert the controller that is part of the Kinova set and control the arm with the controller (see the Kinova manual for more information).
Safety concerns
Info
During operation the bolts of the integration kit may get loose, due to vibrations and so on. Therefore, either periodically re-torque the fasteners, or use Loctite medium-strength when fasten the bolts of the integration kit.
Warning
The Kinova robot arm will be powered down once the Origin One is powered off. And since the Kinova arm does not have any brakes it will release all joints after which gravity shall pull the robot arm. The gripper will thus fall to the ground and may therefore hit the 3D LiDAR of the Origin One and damage it. Therefore, prevent at all times that the robot arm is powered off when the gripper is located above the LiDAR but always keep the gripper in front of the Origin One.
Warning
The Kinova robot arm should be configured with a protection zone around the 3D LiDAR of the Origin One to prevent that the robot arm will execute a path through the LiDAR and thereby damage it. Therefore, use the instruction of the Kinova set to configure such a protection zone around the 3D LiDAR. See the illustrative XML example below.
Please note that your specific protection zone might be different as you may have placed the Kinova robot arm slightly more to the front or to the back of the Origin One.
More details on how to set the protection zones of your Kinova robot arm can be found in their youtube video.
Interfacing with the robot arm
The Kinova robot arm has its own set of software examples to start developing your application with the robot. In this section we will show you how you may connect the network of the robot arm with that of the Origin One, which allows you to control the robot arm from the onboard Linux computer of the Origin One. And hence how you may adjust the docker configuration file of the user-container
running on this onboard Linux computer to simultaneously control the robot arm while interfacing with the ROS2 network of the Origin One.
Change the IP-address of the robot arm
The robot arm is delivered by Kinova with a standard IP-address 198.168.1.10
that is not compatible with the Origin One. To make it compatible you will need to change the IP-address of the robot into 192.168.100.XXX
, where XXX
is any value above 100 as any address below 100 might be in use by the Origin One itself.
The example prepared by Avular for interfacing with the robot arm assumes that the IP-address of the robot arm is set to 192.168.100.200
. Therefore, please adjust the IP-address of the Kinova robot arm using the web interface of the robot arm. Steps for changing the IP address (if using the Development Center):
- Connect your local computer to that of the Kinova robot arm, for example by connecting an ethernet cable in between the robot arm and your computer.
- Follow the Kinova manual to launch the Kinova Kortex WebApp on your computer.
- Navigate to the network settings: Find the section within the software that allows you to configure the robot's network settings.
- Change the IP address: Modify the IP address to
192.168.100.200
. - Apply the changes: Save and apply the new IP address settings within the Kortex WebApp.
- Change you computer's IP-address, which you have set to
192.168.1.11
when following the Kinova manual, so that is matches the new subnet of the robot arm, e.g.,192.169.100.201
. - Verify the change: Check that you can ping the robot using the new IP address from your computer.
You may now revert the ethernet cable so that the robot arm is again connected to the ethernet port of the Origin One.
The check that the Origin One is able to detect the robot arm you may ssh
into the Linux computer of the Origin One and ping 192.169.100.200
, which should result in replies.
Now that we have confirmed that the Origin One is able to detect the Kinova robot arm on the network of the robot we may now also command the robot from the internal Linux computer of the Origin One, as is shown in the next section.
Getting started: Controlling the robot arm from the Origin One PS controller
To help you get started in using the Origin One in combination with the robot arm we have developed as specific user container. To upload this user container to the Origin One please take the following steps:
- SSH into the Origin > [!WARNING] > The next step will remove all files in the user container directory. Make sure to back up any files you want to keep.
- Remove the current user container files
rm -rf /data/user/containers
- Clone the user container files to the Origin
git clone --branch origin_kinova_arm https://github.com/avular-robotics/user-container.git /data/user/containers
- Building the user containers
cd /data/user/containers docker compose build
With the above steps you have created a ROS2 workspace on the internal Linux computer at /data/user/containers/ws
. This workspace is mounted into the user container you have just uploaded to the robot, which when build and running is called origin_kinova (please run docker ps
to verify that).
You may now follow the steps of its README to build the ROS2 workspace and launch the ROS2 example. The example acquires the values of the joystick of the Origin One to sent twist commands to the Kinova robot arm. You may adjust the ROS2 package origin_kinova_example
to control the speed of the robot either from the TOOL frame or from the robot's BASE frame.
You may now continue to develop you own application on the Origin One with Kinova robot arm. The user containers illustrates how to acquire the ROS2 topics and call ROS2 services of the Origin One while simultaneously communicating with the Kinova robot arm
Miscellaneous
Protection Zone XML file
<?xml version="1.0" encoding="UTF-8"?>
<protectionZonesGroup>
<protectionZones>
<applicationData>{"kinova":{"color":0}}</applicationData>
<handle>
<identifier>1</identifier>
<permission>7</permission>
</handle>
<name>Base Protection Zone</name>
<isEnabled>true</isEnabled>
<limitations />
<envelopeLimitations />
<shape>
<shapeType>1</shapeType>
<origin>
<x>0</x>
<y>0</y>
<z>0.07</z>
</origin>
<orientation>
<row1>
<column1>1</column1>
<column2>0</column2>
<column3>0</column3>
</row1>
<row2>
<column1>0</column1>
<column2>1</column2>
<column3>0</column3>
</row2>
<row3>
<column1>0</column1>
<column2>0</column2>
<column3>1</column3>
</row3>
</orientation>
<dimensions>0.15</dimensions>
<dimensions>0.16</dimensions>
<envelopeThickness>0</envelopeThickness>
</shape>
</protectionZones>
<protectionZones>
<applicationData>{"kinova":{"color":0}}</applicationData>
<handle>
<identifier>10000</identifier>
<permission>7</permission>
</handle>
<name>Lidar</name>
<isEnabled>true</isEnabled>
<limitations />
<envelopeLimitations />
<shape>
<shapeType>3</shapeType>
<origin>
<x>0.225</x>
<y>0</y>
<z>0.01</z>
</origin>
<orientation>
<row1>
<column1>1</column1>
<column2>0</column2>
<column3>0</column3>
</row1>
<row2>
<column1>0</column1>
<column2>1</column2>
<column3>0</column3>
</row2>
<row3>
<column1>0</column1>
<column2>0</column2>
<column3>1</column3>
</row3>
</orientation>
<dimensions>0.18</dimensions>
<dimensions>0.17</dimensions>
<dimensions>0.15</dimensions>
<envelopeThickness>0</envelopeThickness>
</shape>
</protectionZones>
<protectionZones>
<applicationData>{"kinova":{"color":0}}</applicationData>
<handle>
<identifier>10001</identifier>
<permission>7</permission>
</handle>
<name>Antennas</name>
<isEnabled>true</isEnabled>
<limitations />
<envelopeLimitations />
<shape>
<shapeType>3</shapeType>
<origin>
<x>-0.21</x>
<y>0</y>
<z>0</z>
</origin>
<orientation>
<row1>
<column1>1</column1>
<column2>0</column2>
<column3>0</column3>
</row1>
<row2>
<column1>0</column1>
<column2>1</column2>
<column3>0</column3>
</row2>
<row3>
<column1>0</column1>
<column2>0</column2>
<column3>1</column3>
</row3>
</orientation>
<dimensions>0.12</dimensions>
<dimensions>0.23</dimensions>
<dimensions>0.14</dimensions>
<envelopeThickness>0</envelopeThickness>
</shape>
</protectionZones>
</protectionZonesGroup>