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-xwayland MACHINE=imx8mqevk source setup-imx-robot.sh -r kinetic -b imx8mqevk-robot-kinetic

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

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

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

[or DISTRO=imx-robot-xwayland 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.

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

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

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

git checkout v1.1-L5.4.70-2.3.2

Updated:

1, Add more packages passed building in ROS1 Kinetic Kame.

2, Change the board name (From IPC to AI-Robot) in Uboot and kernel for i.MX8M Plus AI Robot board. You can use the below setup command to build ROS image for AI Robot board:

DISTRO=imx-robot-xwayland MACHINE=imx8mp-ai-robot source setup-imx-robot.sh -r kinetic -b imx8mp-ai-robot-robot-kinetic
DISTRO=imx-robot-xwayland MACHINE=imx8mp-ai-robot source setup-imx-robot.sh -r melodic -b imx8mp-ai-robot-robot-melodic
DISTRO=imx-robot-xwayland MACHINE=imx8mp-ai-robot source setup-imx-robot.sh -r dashing -b imx8mp-ai-robot-robot-dashing
DISTRO=imx-robot-xwayland MACHINE=imx8mp-ai-robot source setup-imx-robot.sh -r eloquent -b imx8mp-ai-robot-robot-eloquent
DISTRO=imx-robot-xwayland MACHINE=imx8mp-ai-robot source setup-imx-robot.sh -r foxy -b imx8mp-ai-robot-robot-foxy

BTW, you should add BBLAYERS += " ${BSPDIR}/sources/meta-robot-platform/imx/meta-imx8mp-ai-robot " in conf/bblayers.conf.

 

//////////////////////////////////////// update for v1.2-L5.4.70-2.3.3  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v1.2-L5.4.70-2.3.3 . 

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

git checkout v1.2-L5.4.70-2.3.3

Updated:

1, Update to Yocto release L5.4.70-2.3.3

2, Enable RTNet FEC driver, test on i.MX8M Mini EVK and i.MX8M Plus EVK. For the detailed information,  Please refer to the community post 移植实时Linux方案Xenomai到i.MX ARM64平台 (Enable Xenomai on i.MX ARM64 Platform) 

 

//////////////////////////////////////// update for v2.1-L5.10.52-2.1.0  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v2.1-L5.10.52-2.1.0 . 

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

git checkout v2.1.1-L5.10.52-2.1.0

Updated:

1, Update to Yocto release L5.10.52-2.1.0

2, Add ROS1 noetic, ROS2 galactic and rolling

3, Upgrade Xenomai to v3.2

4, Add vSLAM demo orb-slam3

5, Upgrade OpenCV to 3.4.15 for ROS1

A, 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

B, How to build Robot image (example for i.MX8M Plus EVK board)

$ DISTRO=imx-robot-xwayland MACHINE=imx8mpevk source setup-imx-robot.sh -r kinetic -b imx8mpevk-robot-kinetic

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

[or DISTRO=imx-robot-xwayland MACHINE=imx8mpevk source setup-imx-robot.sh -r noetic-b imx8mpevk-robot-noetic]

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

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

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

[or DISTRO=imx-robot-xwayland MACHINE=imx8mpevk source setup-imx-robot.sh -r galactic -b imx8mpevk-robot-galactic ]

[or DISTRO=imx-robot-xwayland MACHINE=imx8mpevk source setup-imx-robot.sh -r rolling -b imx8mpevk-robot-rolling ]

$ bitbake imx-robot-agv

[or bitbake imx-robot-cor ]

[or bitbake imx-robot-system ]

[or bitbake imx-robot-sdk ]

 

//////////////////////////////////////// update for v2.2-L5.10.72-2.2.0  ///////////////////////////////////////////////////////////

New release package meta-robot-platform-v2.2-L5.10.72-2.2.0 . 

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

git checkout v2.2.0-L5.10.72-2.2.0

Updated:

1, Update to Yocto release L5.10.72-2.2.0

Version history
Revision #:
30 of 30
Last update:
‎03-10-2022 08:40 PM
Updated by: