Aruco code recognition and transportation scenarios

1.Scene Construction

Use 3*3 long white baffles to build the venue and place them correctly according to the area in the picture

The white baffle is mounted together with black connecting clips

2.Loading and unloading table assembly

The installation method of the loading and unloading table is the same. Here are the installation instructions for the unloading table

Take out a 280mm aluminum profile

Insert a slider nut

Rotate 90° backwards

Install the two slider nuts

Rotate back 90°

Angle slot connectors on both sides

Right-angle connectors on both sides

Take out a 147.5mm aluminum profile and install two slider nuts inside

Similarly, two slider nuts are installed on the right side and connected together through the right-angle connector.

Take out another 280mm aluminum profile, connect the angle slot connectors and right angle connectors on both sides, and connect them together

The assembly effect is as follows

Take out the screws and hex wrench, and fix the right-angle connectors around, a total of 16 screws

Install four 110mm aluminum profiles

The right-angle connectors around the perimeter are also fixed with screws, with a total of 8 screws

The same specification screws are used to fix the interior, a total of 8 screws are used

Take out the last piece of 232mm aluminum profile and install two slider nuts and two angle slot connectors

Angle slot connectors are inserted into the grooves of the aluminum profiles

Turn the whole thing over and fix the connector with screws

Determine the positions of the five slider nuts and install the acrylic plate

Paste the Aruco code sticker onto the Aruco code printout, making sure not to paste it in the wrong direction

Fasten the Aruco code printout with screws

Adjust the slider nut and fix the anti-collision block with screws

Final effect after installation

3.Composite robot assembly

Use an internal hexagon wrench to remove the four M4*8 internal hexagon screws of myAGV

Use an Allen wrench to remove the two M2.5 Allen screws on myAGV.

Install the myCobot280Pi robot arm with the X-axis in the correct direction and fix the 280Pi with four M4*8 screws.

Re-tighten the M4*8 and M2.5 hexagon socket screws

Return each joint to zero (align with scale lines)

The camera is plugged into the Lego building blocks

Rotate the sixth joint 45° clockwise, align it with the hole, and install the camera horizontally.

Connect the camera's USB cable to the USB port on the 280Pi base.

Integrated suction pump plugs into Lego building blocks

Wrap the suction pump Grove interface wire around and connect it to the io port at the end of the robot arm. Only connect two wires G23 and G33

Connect the power supply to the sixth joint of the robot arm and connect 5V and GND

Connect the robot power cable, one end to myAGV and the other end to the robot base

Installing the Pallet

The touch screen is an optional product The following are the screen assembly and installation instructions

Take out the IPS touch screen, hinge and matching screws from the accessory box, and fix the hinge with screws

Install the black connector, pay attention to the direction of the black connector, and install the fixing screws

Tighten the screws into the three screw holes corresponding to the connector

Connect the HDMI cable and Micro USB2 to myAGV

Final installation effect

4.myCobot calibrates zero point

Connect the micro HDMI port of the myCobot280pi base to the display screen, and connect the USB port to the mouse and keyboard. Now the myCobot280pi screen is controlled by the display.

After the connection is completed, the interface of the connected device is displayed on the desktop, as shown in the figure below.

Double-click ROS1 Shell on the interface to open a console terminal and enter the following command in the command line:

cd mycobottesttool-221110/
python main.py

After the command is entered, a pop-up window will appear. Select the corresponding device and baud rate, and then click Connect: myCobot 280-Pi: 1000000

After powering on, the joints of the robot arm are in a locked state. Click the calibration zero point, release the robot arm joint J1, manually return the robot arm J1 joint to zero position, click the calibration zero point again, release the robot arm joint J2, and so on until the calibration is completed to the J6 joint. The interface shows the calibration is completed, and the robot arm calibration is completed.

The calibration position of the sixth joint should be as shown in the figure below (keep the camera parallel to the ground and the calibration port offset by about 45°):

5.Remote software use

5.1Download mobaXterm remote software

Enter the following URL in the browser and download the remote connection software in advance on your computer

https://mobaxterm.mobatek.net/

Just run the .exe file

5.2Remote connection between myAGV and 280Pi

Press the power switch to turn on the myAGV

Turn on myAGV's wifi hotspot: disconnect the currently connected wifi, then click the hotspot switch button. You need to turn it on manually for the first time, and the hotspot will automatically start when you turn on the device subsequently.

After turning on the myAGV's wifi hotspot, you can see the name of myagv's hotspot in the upper right corner of the desktop: ElephantRobotics_AP_xxxx. Here, myAGV's hotspot is ElephantRobotics_AP_fdff.

Select "Connection information" to view the current myAGV IP address: 10.42.0.1

Then unplug the monitor cable of myAGV and connect the micro HDMI interface of myCobot280pi to the display. Now the screen of myCobot280pi is displayed.

myCobot280pi connects to the wifi hotspot just generated by myAGV: Elephantrobotics_AP_fdff

Select "Connection information" to view the current IP address of myCobot280Pi: 10.42.0.203

The next operation requires a computer. Connect the computer to the myAGV wifi hotspot. Here, myAGV's hotspot is ElephantRobotics_AP_a317. Select the security key to connect, and then enter the hotspot password: Elephant

Use mobaXterm to connect to myAGV and click the Session icon

Enter the car's IP: 10.42.0.1, click OK, and click Accept for the first connection.

Enter username: er Enter password: Elephant The password will not be displayed when you enter it. Enter it normally and press Enter to log in

Normal login display screen

Similarly, you can also log in to myCobot280 remotely. The IP address you use for logging in should be changed to the IP address you just queried: 10.42.0.203

6.Program running

Finally, make sure the composite robot is placed in the red frame position and started, and place the QR code wooden block on the workbench in the loading area. The placement of the QR code wooden block should be in the center of the robot arm camera scan, and the error of the center scan is small. Make sure no other terminal windows are opened.

A total of four programs need to be run, myAGV needs to run three terminals, myCobot280 needs to run one terminal

6.1 myAGV turns on radar and underlying communication

Enter the following command in the first terminal

cd myagv_ros/src/myagv_odometry/scripts/
./start_ydlidar.sh
roslaunch myagv_odometry myagv_active.launch

6.2 myAGV starts navigation function

1.Right click the IP address above, click Duplicate tab, and open the second terminal

2.Similarly, you also need to log in with a username and password, which are er and Elephant respectively

3.Enter the following command in the second terminal

roslaunch myagv_navigation composite_robot_navigation_active.launch

6.3 myAGV starts the socket server

1.Right click the IP address above, click Duplicate tab, and open the third terminal

2.You also need to log in with a username and password, which are er and Elephant respectively.

3.Enter the following command in the third terminal

cd ~/Composite-robot-kit/myagv-pi/
python agv_socket_server.py

6.4 myCobot280 starts the socket client

1.Click the Session icon, and the login IP address should be changed to the IP address of myCobot280 just queried. The IP address queried here is 10.42.0.13

2.You also need to log in with a username and password, which are er and Elephant respectively.

3.Enter the following command in the terminal

cd ~/Composite-robot-kit/myagv-pi/
python 280pi_socket_client.py

Click on the 4 terminals mode in Split to easily view the code running status

In the myCobot robot arm IP: 10.42.0.13 terminal window prompt

connect finish
Enter any key and press enter

After pressing Enter or any key and waiting for the robot arm to send instructions, the whole process will proceed.

The composite robot will complete automatic navigation according to the instructions, and the robotic arm can accurately identify and grab the QR code building blocks process:

① myAGV fixed-point navigation ② myAGV QR code navigation ③ myCobot QR code recognition ④ myAGV fixed-point navigation ⑤ Robotic arm placement

7.Precautions

Problem 1: During the suction process, the suction pump may not suck the center of the material.

Solution: Observe the scanning area of ​​the camera on the computer and place the material as close to the center of the camera as possible.

Problem 2: There is a fixed error when the QR code recognition pump is sucked.

Solution: Observe the error of the X and Y axes, and increase or decrease the X and Y errors in line 85 of the 280pi_socket_client.py code.

Question 3: When the suction pump places the material into the trolley tray, the placement may be inaccurate, touching the edge of the tray and causing placement failure.

Solution: (1) Recalibrate the robot arm to zero position (2) Calibrate the placement and removal of wooden blocks

The following is an introduction to calibrating the placement and removal of wooden blocks. First, use the remote software to connect to the robot arm through the IP address, then enter python in the terminal, press Enter to enter the command line mode, and enter the following command

from pymycobot import MyCobot
mc = MyCobot('/dev/ttyAMA0',1000000)
mc.release_all_servos()

Aim the suction pump at the center of the QR code

Then enter the following command in the Python command line

mc.power_on
coords=mc.get_coords()
coords[2]+=58
mc.send_coords(coords,20)
mc.get_angles()

Then it will return the current joint angle

[-51.85, 20.39, -116.45, -2.81, 7.38, 26.01]

Modify this joint angle to the 280pi_socket_client.py code

results matching ""

    No results matching ""