i.MX 机器人平台 i.MX Robot Platform

cancel
Showing results for 
Search instead for 
Did you mean: 

i.MX 机器人平台 i.MX Robot Platform

No ratings

i.MX 机器人平台 i.MX Robot Platform

    The meta layer is designed for those guys who want to use i.MX8M series SOC and Yocto system to develop AGV and Robot.

   The platform includes some key components:

1, ROS1 (kinetic, melodic) and ROS2(dashing, eloquent, foxy)

2, Real-time Linux solution : Xenomai 3.1 with ipipe 5.4.47 patch

3, Industrial protocol : libmodbus, linuxptp, ros-canopen, EtherCAT(TBD)

4, Security: Enhanced OpenSSL, Enhanced GmSSL, Enhanced eCryptfs, secure key store, secure boot(TBD), SE-Linux(TBD),  Dm-verity(TBD)

The first release bases on i.MX Yocto release L5.4.47 2.2.0 and You need download Linux 5.4.47_2.2.0 according to​​ https://www.nxp.com/docs/en/user-guide/IMX_YOCTO_PROJECT_USERS_GUIDE.pdf  firstly. And then you can follow the below guide to build and test ROS and Xenomai.

A, clone meta-robot-platform from gitee.com

git clone https://gitee.com/zxd2021-imx/meta-robot-platform.git

git checkout v0.1-L5.4.47-2.2.0

B, Adding the meta-robot-platform layer to your build

1,  copy meta-robot-platform into <i.MX Yocto folder>/source

2, You should create a symbol link: setup-imx-robot.sh -> sources/meta-robot-platform/imx/meta-robot/tools/setup-imx-robot.sh

C, How to build Robot image (example for i.MX8MQ EVK board)

$ DISTRO=imx-robot-wayland MACHINE=imx8mqevk source setup-imx-robot.sh -r kinetic -b imx8mqevk-robot-kinetic

[or DISTRO=imx-robot-wayland MACHINE=imx8mqevk source setup-imx-robot.sh -r melodic -b imx8mqevk-robot-melodic ]

[or DISTRO=imx-robot-wayland MACHINE=imx8mqevk source setup-imx-robot.sh -r dashing -b imx8mqevk-robot-dashing ]

[or DISTRO=imx-robot-wayland MACHINE=imx8mqevk source setup-imx-robot.sh -r eloquent -b imx8mqevk-robot-eloquent ]

[or DISTRO=imx-robot-wayland MACHINE=imx8mqevk source setup-imx-robot.sh -r foxy -b imx8mqevk-robot-foxy ]

$ bitbake imx-robot-core

[or bitbake imx-robot-system ]

[or bitbake imx-robot-sdk ]

And if you add XENOMAI_KERNEL_MODE = "cobalt" or XENOMAI_KERNEL_MODE = "mercury" in local.conf, you also can build real-time image with Xenomai by the below command:

$ bitbake imx-robot-core-rt

[or bitbake imx-robot-system-rt ]

D, Robot image sanity testing

//ROS1 Sanity Test #source /opt/ros/kinetic/setup.sh

[or # source /opt/ros/melodic/setup.sh ]

#echo $LD_LIBRARY_PATH

#roscore &

#rosnode list

#rostopic list #only kinetic

#rosmsg list

#rosnode info /rosout

//ROS2 Sanity Test

#source ros_setup.sh

#echo $LD_LIBRARY_PATH

#ros2 topic list

#ros2 msg list #only dashing

#ros2 interface list

#(sleep 5; ros2 topic pub /chatter std_msgs/String "data: Hello world") &

#ros2 topic echo /chatter

E, Xenomai sanity testing

#/usr/xenomai/demo/cyclictest -p 50 -t 5 -m -n -i 1000

F, vSLAM demo

You can find orb-slam2 demo under <i.MX Yocto folder>/sources/meta-robot-platform/imx/meta-robot/recipes-demo/orb-slam2. You should choose DISTRO=imx-robot-xwayland due to it depends on OpenCV with gtk+.

orb-slam2-mono.jpg

 

//////////////////////////////////////// update for Yocto L5.4.70 2.3.0  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v0.2-L5.4.70-2.3.0 for Yocto release L5.4.70 2.3.0 and it supports i.MX8M series (8MQ,8MM,8MN and 8MP) and i.MX8QM/QXP. 

git clone https://gitee.com/zxd2021-imx/meta-robot-platform.git

git checkout v0.2-L5.4.70-2.3.0

Updating:

1, Support i.MX8QM and i.MX8QXP

2, Add ROS driver of RPLIDAR and Orbbec 3D cameras in ROS1

3, Upgrade OpenCV to 3.4.13.

4, Add imx-robot-agv image with orb-slam2 demo

5, Fix the issue which failed to create image when adding orb-slam2

6, Fix the issue which failed to create imx-robot sdk image when add package ISP and ML

Note: Currently, orb-slam2 demo don't run on i.MX8MM platform due to its GPU don't support OpenGL ES3.

imx-robot-sdk image is just for building ROS package on i.MX board, not  for cross-compile. You can try "bitbake imx-robot-system -c populate_sdk" to create cross-compile sdk without gmssl-bin.

diff --git a/imx/meta-robot/recipes-core/images/imx-robot-system.bb b/imx/meta-robot/recipes-core/images/imx-robot-system.bb
index 1991ab10..68f9ad31 100644
--- a/imx/meta-robot/recipes-core/images/imx-robot-system.bb
+++ b/imx/meta-robot/recipes-core/images/imx-robot-system.bb
@@ -35,7 +35,7 @@ CORE_IMAGE_EXTRA_INSTALL += " \
${@bb.utils.contains('DISTRO_FEATURES', 'x11 wayland', 'weston-xwayland xterm', '', d)} \
${ISP_PKGS} \
"
-IMAGE_INSTALL += " clblast openblas libeigen opencv gmssl-bin"
+IMAGE_INSTALL += " clblast openblas libeigen opencv"

IMAGE_INSTALL += " \
${ML_PKGS} \

 

//////////////////////////////////////// update for Yocto L5.4.70 2.3.2  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v0.3-L5.4.70-2.3.2 for Yocto release L5.4.70 2.3.2 . 

git clone https://gitee.com/zxd2021-imx/meta-robot-platform.git

git checkout v0.3-L5.4.70-2.3.2

Updated:

1, Upgrade to L5.4.70-2.3.2

2, Enable xenomai rtdm driver

3, Add NXP Software Content Register and BSP patches of i.MX8M Plus AI Robot board.

Note: How to build for AI Robot board

1, DISTRO=imx-robot-wayland MACHINE=imx8mp-ddr4-ipc source setup-imx-robot.sh -r melodic -b imx8mp-ddr4-ipc-robot-melodic

2, Add BBLAYERS += " ${BSPDIR}/sources/meta-robot-platform/imx/meta-imx8mp-ai-robot " in bblayers.conf

3, bitbake imx-robot-sdk or bitbake imx-robot-agv

 

//////////////////////////////////////// update for v1.0-L5.4.70-2.3.2  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v1.0-L5.4.70-2.3.2 . 

git clone https://gitee.com/zxd2021-imx/meta-robot-platform.git

git checkout v1.0-L5.4.70-2.3.2

Updated:

1, Upgrade ROS1 Kinetic Kame to Release 2021-05-11 which is final sync.

2, Add IgH EtherCAT Master for Linux in i.MX Robot platform.

Version history
Revision #:
19 of 19
Last update:
2 weeks ago
Updated by: