Closed elgarbe closed 7 months ago
I mannage to make it work with this Dockerfile:
FROM dustynv/ros:humble-ros-base-l4t-r32.7.1
RUN mkdir -p /home/microros_ws
WORKDIR /home/microros_ws
RUN mkdir src \
&& git -C src clone -b $ROS_DISTRO https://github.com/micro-ROS/micro-ROS-Agent.git \
&& git -C src clone -b $ROS_DISTRO https://github.com/micro-ROS/micro_ros_msgs.git \
&& . /opt/ros/$ROS_DISTRO/install/setup.sh \
&& apt update \
&& apt install -y python3-pip \
libspdlog-dev \
libfmt-dev \
&& apt autoremove -y \
&& sudo rosdep fix-permissions \
&& rosdep update \
&& rosdep install --from-paths src --ignore-src -y \
&& colcon build --cmake-args -DUAGENT_BUILD_EXECUTABLE=OFF -DUAGENT_P2P_PROFILE=OFF -DUAGENT_USE_SYSTEM_LOGGER=ON --no-warn-unused-cli \
&& rm -rf log/ build/ src/* \
&& rm -rf /var/lib/apt/lists/*
ENV RMW_IMPLEMENTATION=rmw_fastrtps_cpp
RUN echo "source /home/microros_ws/install/setup.bash" >> ~/.bashrc
RUN echo "source /opt/ros/$ROS_DISTRO/install/setup.bash" >> ~/.bashrc
ENTRYPOINT ["/ros_entrypoint.sh"]
I'm using this docker-compose:
version: '3.4'
services:
robot:
network_mode: "host"
privileged: true
build:
context: .
dockerfile: Dockerfile
volumes:
- /etc/timezone:/etc/timezone:ro
- /etc/localtime:/etc/localtime:ro
# command: /bin/sh -c './home/microros_ws/install/setup.bash' run
# - /bin/sh
# - -c
# - |
# ./home/microros_ws/install/setup.bash
# ros2 run micro_ros_agent micro_ros_agent serial -v --dev /dev/ttyACM0
command: /bin/sh -c "while sleep 1000; do :; done"
Then I run:
docker-compose up -d --build
docker exec -it microrosagentdocker_robot_1 bash
elgarbe@jetson:~/micro-ros-agent_docker$ docker exec -it microrosagentdocker_robot_1 bash
root@jetson:/home/microros_ws# ros2 run micro_ros_agent micro_ros_agent serial -v --dev /dev/ttyACM0
My question is not related with micros-ROS now, but maybe you can help me.
I would like to run ros2 run micro_ros_agent micro_ros_agent serial -v --dev /dev/ttyACM0
in the docker-compose up
command. Si I've tried using docker-compose's command: label. But I have not succed.
If a use
command: ros2 run micro_ros_agent micro_ros_agent serial -v --dev /dev/ttyACM0
then I get micro_ros_agent not found
I was trying to source microros_ws in the command label but without success.
Is there a way to make it work?
Thank!
Ok, I manage to make it work https://forums.developer.nvidia.com/t/building-micro-ros-agent-inside-docker-container/273401/5?u=leogarberoglio for future users references.
I need to build micro-ros-agent inside a Docker container on a Jetson Nano. I saw this post and this one
I modify build_agent.sh to this:
but the same errors occurr:
am I missing something?
Thank