Real-time methods

asked 2021-01-05 01:59:45 -0500

xtraBot gravatar image

updated 2021-01-06 01:07:32 -0500

Hello, I am working on setting up a mobile robot which uses a diff drive base but also has a torso and two arms. I am interested in setting up a hardware-software architecture such that I can have a deterministic system to ensure security in collision avoidance and movement around people. For this reason, I have been looking into possible soft-RT configurations for my robot and have come up with a list of possible options and wanted feedback on what the right course of action could be. I understand that using ROS on a standard linux kernel will not work and a patch such as the RT-PREEPMT is needed. Other options such as xenomi are expensive and so far I do not see the need for a hard-real time system. The options that I am considering are below:

  1. Comparison of setting things up directly in ROS 2 which offers functionality with python 3 and RT vs. setting things up in ROS which definitely has more packages available (I am more familiar with ROS as well). Right now, I expect to use the navigation stack and move it from ROS.
  2. If I continue with ROS I have the following options: 1].Using ROS with OROCOS and ros_control: From my understanding OROCOS runs on top of linux kernels. If I want to work on a distributed hardware system will this limit me to using SBCs? 2]. Using controllers such as STM 32 series for real-time sensitive tasks such as running position and velocity controllers and using rosserial to communicate and publish on topics with a standard linux kernel running ROS. This will be a much simpler set up and I can use FreeRTOS to ensure some deterministic behaviors

This is the first time I am setting up a project at this scale and still learning about how all these different components come together so my apologies if I got some information wrong. Thank you.

edit retag flag offensive close merge delete