micro-ROS / micro-ROS/micro-ROS-Agent
Run micro-ros-agent on top of rmw_fastrtps_dynamic_cpp, using introspection typesupport
Ninguém assumiu esta issue ainda.
- Linguagem predominante
- C++
- Estrelas
- 201
- Forks
- 111
- Merge médio
- 1d 6h
- PRs com merge (30d)
- 10
Descrição
## Issue template
- Hardware description: Linux aarch64
- Installation type: https://github.com/mvukov/rules_ros2
- Version or commit hash: humble
I am getting segmentation fault at
https://github.com/micro-ROS/micro-ROS-Agent/blob/8fdc5060c7601a5d7d9e12254a1681e51da02d2c/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp#L33
due to the `type_support_` object being erased from memory somewhere in
https://github.com/micro-ROS/micro-ROS-Agent/blob/8fdc5060c7601a5d7d9e12254a1681e51da02d2c/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp#L31
`type_support_->typesupport_identifier` is `rosidl_typesupport_introspection_cpp` since I am using `rmw_fastrtps_dynamic_cpp` as middleware. I see that L33 in graph_typesupport.cpp compares with `rosidl_typesupport_fastrtps_cpp`, which is why I assume micro-ros-agent requires `rmw_fastrtps_cpp` as middleware. I would like to stick with `rmw_fastrtps_dynamic_cpp`.
Changing this line from `rmw_fastrtps_dynamic_cpp` to `rosidl_typesupport_introspection_cpp` causes the segmentation error to go away and the program can proceed:
https://github.com/micro-ROS/micro-ROS-Agent/blob/8fdc5060c7601a5d7d9e12254a1681e51da02d2c/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp#L32
However, then it fails at this line instead with a segmentation fault:
https://github.com/micro-ROS/micro-ROS-Agent/blob/8fdc5060c7601a5d7d9e12254a1681e51da02d2c/micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp#L183
My question is, can micro-ros-agent support introspection, i.e. rmw_fastrtps_dynamic_cpp?
What are the necessary changes if not?
Guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Direção de pesquisa
Comece por micro_ros_agent/src/agent/graph_manager/graph_typesupport.cpp, especialmente pelas linhas 31-33 e 183, e reproduza o segmentation fault no Linux aarch64 com Humble e rmw_fastrtps_dynamic_cpp. Compare os identificadores de typesupport reportados e determine se a introspection é compatível; o trabalho estará concluído quando as alterações necessárias forem documentadas ou quando o middleware compatível sem o crash for confirmado.
Escrita pelo modelo de indexação a partir do texto da issue.
Avaliação
- Stack de tecnologia
- cpp
- Domínio
- distributed-systems, robotics
- Tipo de issue
- Bug
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Status de atividade
- Estagnada
- Clareza
- Razoavelmente clara
- Facilidade para iniciantes
- 30/100