Closed hsd-dev closed 1 year ago
I got permission denied when pushing to this branch, can you give me some rights ?
The current code seems to be valid only for foxy
. We might need to have separate branch for galactic
and upwards https://github.com/PepperlFuchs/pf_lidar_ros_driver/runs/6810174179?check_suite_focus=true#step:4:685
For now, I will disable galactic
and upwards
The current code seems to be valid only for
foxy
. We might need to have separate branch forgalactic
and upwards
What makes you say that ? I'm working with galaxy only
@wawanbreton please check the CI output linked above. Didn't you get that error?
Edit: the error exists for foxy as well actually https://github.com/PepperlFuchs/pf_lidar_ros_driver/runs/6810315345?check_suite_focus=true
No I didn't get the error, pcl-conversion is actually available for galactic
right, we have commented out the deps https://github.com/PepperlFuchs/pf_lidar_ros_driver/blob/porting-ros2/pf_driver/package.xml#L13. Since CI starts with a clean docker, these packages have not been installed.
OK the CI seems to be working now: https://github.com/PepperlFuchs/pf_lidar_ros_driver/runs/6811233956?check_suite_focus=true#step:4:1582
My commit containing the DAE files instead of the STL has been wiped out, was it intentional ?
sorry about that. I think I pushed commits around the same time as you. Could you fetch the latest commits, rebase and push that commit again?
Also, take a look at the CI output linked above
/root/target_ws/src/pf_lidar_ros_driver/pf_driver/src/pf/pf_interface.cpp:220:25: error: missing template arguments before ‘feed_time’
220 | std::chrono::duration feed_time = std::min(duration, std::chrono::milliseconds(std::chrono::seconds(60)));
| ^~~~~~~~~
/root/target_ws/src/pf_lidar_ros_driver/pf_driver/src/pf/pf_interface.cpp:221:46: error: ‘feed_time’ was not declared in this scope
221 | watchdog_timer_ = node_->create_wall_timer(feed_time, std::bind(&PFInterface::feed_watchdog, this));
Commit restored. Please don't force-push unless you are alone on a repos :)
Build error should be fixed, I used a declaration that is only available with C++17 but foxy targets C++14
better to rename the branch to foxy-devel
Should we remove these two commits for now? https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83/commits/3f1385c7fd3d02e49c5014705406aa031fbfd073 and https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83/commits/c6c290fb428674dd6ca729039dc04990b9546594. For this PR I want to focus on porting existing functionality to ROS2 and not add new features mid-way. I can create a new PR with those 2 commits stacks behind this one.
I completely agree, I was wondering about splitting them to an other PR. Maybe this should be the case for https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83/commits/d75100945368923990de207e8ce2ad479ae97bdf too ?
Hi @ipa-hsd, I'm starting to rework the parameters stack because some things are not properly done at initialization. I'm wondering about the parameters philosophy, I can see two possible options :
Option 1 is more repeatable because whatever you did before, the LIDAR will always start in the same configuration. Option 2 considers you may want to store some configuration into the LIDAR definitely. Personnally, I prefer option 1 because we can easily set all the required parameters into a config file, so I don't really see a need to store configuration on long-term. What do you think should be implemented ?
Thanks for taking a look into this.
some things are not properly done at initialization
Anything specific?
Maybe @ptruka has something to say about this based on the customer feedback?
@wawanbreton also I am starting to think about the fact the base cpp code (not ROS specific parts) is starting to diverge from the code for ROS1. I am not sure to what extent it is possible to reuse the same classes, but something we might want to keep in mind. One possibility could be whatever inconsistencies / bugs you have fixed in this PR, we could propagate it back to the ROS1 code as well.
Anything specific?
Yesterday I implemented start_angle parameter, but then figured out that it was not applied at startup. I'm working on it.
One possibility could be whatever inconsistencies / bugs you have fixed in this PR, we could propagate it back to the ROS1 code as well
Until now, I only fixed the bugs I created by changing the parameters description. The management is very different from the one with ROS1, so I'm not sure we could have the same code base for both. I'd be happy to really refactor this part, but I would understand you want to keep consistency between versions. However, I only changed the ROS-related code but all low-level communication code is still the same.
As long as we ensure that the behaviour is the same in ROS1 and ROS2, it should be fine. I can think of some tests for that.
As long as we ensure that the behaviour is the same in ROS1 and ROS2, it should be fine. I can think of some tests for that.
Great, I'll keep going this way. And It would make me feel better to have some tests indeed :)
@wawanbreton it would be better to remove the commit https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83/commits/1244f3d42f1cd3584cb84fd5127f365a69f4f52f because there are 2 PRs open https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77 and https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/81 which are changing quite some cpp code. Bringing those changes to this PR would not be possible with a simple rebase if we do a major refactoring. As mentioned in https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83#issuecomment-1152143475, it would make sense to use this PR to make only ROS-specific changes and make a new PR for cpp code improvements.
it would make sense to use this PR to make only ROS-specific changes and make a new PR for cpp code improvements.
OK, I didn't understand this. The thing is, proper management of parameters will require some architectural changes, so I thought it would be the right time. But I can do something a bit less intrusive yet, even if it is a bit dirty, and make it clean later, if that's what you want.
The protocol-specific code is intended to be used like a pure cpp library with no ROS dependency, apart from logging
Noted, it perfectly makes sense !
The thing is, proper management of parameters will require some architectural changes, so I thought it would be the right time.
I agree, but some logic has changed and couple of new features have been introduced in those PRs. I have added that commit as part of TODO in this PR's description.
Ok, I will wait for your go to work on this.
The CI is failing because the code is not formatted properly https://github.com/PepperlFuchs/pf_lidar_ros_driver/runs/7018472659?check_suite_focus=true#step:4:174 Could you apply the clang formatting? (If you are using VS Code, right click on the file and "Format document with...").
The link above shows which documents need to be updated.
I'm not using VS Code, but I tried applying formatting using clang-format. However, the whole file is changed and becomes very different... Is there a formatting profile you are implicitely using ?
Seems I got it right :) I configured clang-format to style "FIle" so it probably found it by itself. Thank you for pointing it to me, I'd like to use it for my own projects !
@wawanbreton both https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/77 and https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/81 have been merged now. Could you apply https://github.com/PepperlFuchs/pf_lidar_ros_driver/commit/1244f3d42f1cd3584cb84fd5127f365a69f4f52f to the latest main
branch? Please make a new PR to the main
branch with those changes. Then we can rebase this PR from main
.
Ok, I have started but that's a lot of work, because commit https://github.com/PepperlFuchs/pf_lidar_ros_driver/commit/1244f3d42f1cd3584cb84fd5127f365a69f4f52f is based on the ROS2 version and the main
branch is based on the ROS1 version. So I have to backport the changes to finally re-port them to the ROS2 version. Is that what you intend to ?
By the way, I'm leaving on holiday this evening for a few weeks, so it may not be available soon.
No worries, I can make those changes based on https://github.com/PepperlFuchs/pf_lidar_ros_driver/commit/1244f3d42f1cd3584cb84fd5127f365a69f4f52f and you can carry on from there.
@wawanbreton I have rebased this PR from https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/87. Now we are good to go.
我在推送到这个分支时被拒绝了,你能给我一些权利吗?
can you get the points in rviz? my ROS2 version is galactic .when I using the porting ros2 I can get messages but can't get points. So what should I do to solve this problem thank you.
@chenwu-cc thanks for testing the branch. I thought the problem was only on my PC. I will test it today again and get back to you.
May I ask if I use the galactic version could I run porting ros2.
May I ask if I use the galactic version could I run porting ros2.
yes I am working with galactic as well
@chenwu-cc could you please try this PR again? I fixed the issue.
Many thanks to everyone for their support! Due to the general changes to the code and the resulting differences to the ros1 driver, a repository for ros2 was created: https://github.com/PepperlFuchs/pf_lidar_ros2_driver
Originally from https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/82 started by @wawanbreton
CMakeLists.txtsetup.py: https://github.com/PepperlFuchs/pf_lidar_ros_driver/pull/83/commits/9476ad63b870801110c965d7b480135093a04f58