问题标签 [ros2]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
436 浏览

cmake - 在 Colcon 构建期间出现“无法复制文件”错误

我有一个 Catkin 工作区,我正试图将其移至 Colcon 构建系统。我在修改我的 CMakeLists 以适应这一点时遇到了一些麻烦,目前在运行colcon build.

我假设这种情况正在发生,因为/usr/lib我当前的用户不可写,因此无法复制共享对象文件。运行时空间会正确构建catkin build

我可以做些什么来将 lib 位置修改为我的用户具有写入权限的位置吗?

到目前为止,我尝试弄乱CATKIN_INSTALL_PREFIX无济于事,我对运行sudo colcon build和弄乱/usr/lib.

对于上下文,构建Ardupilot_Gazebo插件时会出现错误。我们认为这是对$GAZEBO_LIBARIES. 有什么方法可以创建本地 Gazebo 库路径吗?

谢谢!

0 投票
1 回答
367 浏览

java - ROS2 Java 示例:com.intellij.openapi.externalSystem.model.ExternalSystemException:无法在空对象上调用方法 split()

我克隆了 ROS2 Java 示例并尝试使用 Intelij、Gradle 6.3 和 Java 14 使用 Gradle 构建它们。但是在项目导入期间引发了以下异常。我已经完成了 ROS2 的安装,我可以在 cpp 和 python 中成功运行示例。我复制了完整的堆栈跟踪。我电脑中的ROS2版本是ros2-dashing-20200319-windows-amd64。

  • 例外情况是:com.intellij.openapi.externalSystem.model.ExternalSystemException:无法在 org.jetbrains 的 org.jetbrains.plugins.gradle.model.ProjectImportAction.addBuildModels(ProjectImportAction.java:272) 的空对象上调用方法 split()。 plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:130) 在 org.jetbrains.plugins.gradle.model.ProjectImportAction.execute(ProjectImportAction.java:56) 在 org.gradle.tooling.internal.consumer.connection。 InternalBuildActionAdapter.execute(InternalBuildActionAdapter.java:79) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.runAction(ClientProvidedPhasedActionRunner.java:120) at org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ ActionRunningListener.run(ClientProvidedPhasedActionRunner.java:110) 在 org.gradle.tooling.internal.provider.runner.ClientProvidedPhasedActionRunner$ActionRunningListener.buildFinished(ClientProvidedPhasedActionRunner.java:104) at jdk.internal.reflect.GeneratedMethodAccessor39.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 在 org.gradle。 internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:382) at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:58) 在 org.gradle.internal.event。DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352) at org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch( AbstractBroadcastDispatch.java:42) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231) at org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150) at org .gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58) 在 org.gradle.internal.event.BroadcastDispatch$CompositeDispatch.dispatch(BroadcastDispatch.java:325) 在 org.gradle.internal.event.BroadcastDispatch$CompositeDispatch .dispatch(BroadcastDispatch.java:235) 在 org.gradle.internal.event。ListenerBroadcast.dispatch(ListenerBroadcast.java:141) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94)在 com.sun.proxy.$Proxy18.buildFinished(Unknown Source) 在 org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:184) 在 org.gradle.initialization.DefaultGradleLauncher.finishBuild(DefaultGradleLauncher.java:127) 在org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:67) 在 org.gradle.internal.work.DefaultWorkerLeaseService 的 org.gradle.internal.invocation.GradleBuildController$1.create(GradleBuildController.java:75)。 withLocks(DefaultWorkerLeaseService.java:189) 在 org.gradle.internal.work.StopShieldingWorkerLeaseService。withLocks(StopShieldingWorkerLeaseService.java:40) 在 org.gradle.internal.invocation.GradleBuildController.doBuild(GradleBuildController.java:67) 在 org.gradle.internal.invocation.GradleBuildController.run(GradleBuildController.java:56) 在 org.gradle .tooling.internal.provider.runner.ClientProvidedPhasedActionRunner.run(ClientProvidedPhasedActionRunner.java:60) at org.gradle.launcher.exec.ChainingBuildActionRunner.run(ChainingBuildActionRunner.java:35) at org.gradle.launcher.exec.ChainingBuildActionRunner.run (ChainingBuildActionRunner.java:35) 在 org.gradle.launcher.exec.BuildOutcomeReportingBuildActionRunner.run(BuildOutcomeReportingBuildActionRunner.java:63) 在 org.gradle.tooling.internal.provider.ValidatingBuildActionRunner.run(ValidatingBuildActionRunner.java:32) 在 org. gradle.launcher.exec.BuildCompletionNotifyingBuildActionRunner。在 org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner$3.call(RunAsBuildOperationBuildActionRunner.java:45) 在 org.gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.java:51 运行(BuildCompletionNotifyingBuildActionRunner.java:39) .gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor $1.execute(DefaultBuildOperationExecutor.java:165) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) 在 org.gradle.internal.operations。DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36) at org .gradle.launcher.exec.RunAsBuildOperationBuildActionRunner.run(RunAsBuildOperationBuildActionRunner.java:45) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform(InProcessBuildActionExecuter.java:50) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter$1.transform (InProcessBuildActionExecuter.java:47) 在 org.gradle.composite.internal.DefaultRootBuildState.run(DefaultRootBuildState.java:80) 在 org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:47) 在 org.gradle。启动器.exec。InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:31) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:42) at org.gradle.launcher.exec.BuildTreeScopeBuildActionExecuter.execute(BuildTreeScopeBuildActionExecuter.java:28) at org .gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:78) at org.gradle.tooling.internal.provider.ContinuousBuildActionExecuter.execute(ContinuousBuildActionExecuter.java:52) at org.gradle.tooling.internal.provider .SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:60) 在 org.gradle.tooling.internal.provider.SubscribableBuildActionExecuter.execute(SubscribableBuildActionExecuter.java:38) 在 org.gradle.tooling.internal.provider.SessionScopeBuildActionExecuter。在 org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:37) 处执行(SessionScopeBuildActionExecuter.java:68)在 org.gradle.tooling.internal.provider.GradleThreadBuildActionExecuter.execute(GradleThreadBuildActionExecuter.java:26) 在 org.gradle.tooling.internal.provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:43) 在 org.gradle.tooling.internal .provider.ParallelismConfigurationBuildActionExecuter.execute(ParallelismConfigurationBuildActionExecuter.java:29) 在 org.gradle.tooling.internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:60) 在 org.gradle.tooling。internal.provider.StartParamsValidatingActionExecuter.execute(StartParamsValidatingActionExecuter.java:32) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute(SessionFailureReportingActionExecuter.java:55) at org.gradle.tooling.internal.provider.SessionFailureReportingActionExecuter.execute( SessionFailureReportingActionExecuter.java:41) 在 org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:48) 在 org.gradle.tooling.internal.provider.SetupLoggingActionExecuter.execute(SetupLoggingActionExecuter.java:32) 在 org .gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:68) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher .daemon.server.api.DaemonCommandExecution。在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution. java:104) at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:29) at org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104)在 org.gradle.launcher.daemon.server.exec.RequestStopIfSingleUsedDaemon.execute(RequestStopIfSingleUsedDaemon.java:35) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle .launcher.daemon.server.exec.ForwardClientInput$2.create(ForwardClientInput.java:78) 在 org.gradle.launcher.daemon.server.exec.ForwardClientInput$2。create(ForwardClientInput.java:75) at org.gradle.util.Swapper.swap(Swapper.java:38) at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:75) at org .gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.LogAndCheckHealth.execute(LogAndCheckHealth.java:55) 在 org.gradle.launcher .daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:63) 在 org.gradle.launcher.daemon.server .exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution.java:104) 在 org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment .doBuild(EstablishBuildEnvironment.java:82) 在 org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:37) 在 org.gradle.launcher.daemon.server.api.DaemonCommandExecution.proceed(DaemonCommandExecution. java:104) 在 org.gradle.launcher.daemon.server.DaemonStateCoordinator$1.run(DaemonStateCoordinator.java:297) 在 org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:52)在 org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64) 在 org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48) 在 org.gradle.internal.concurrent。 ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) java.lang.NullPointerException:无法在 org.codehaus.groovy 的空对象上调用方法 split()。runtime.NullObject.invokeMethod(NullObject.java:91) 在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:43) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray. java:47) 在 org.codehaus.groovy.runtime.callsite.NullCallSite.call(NullCallSite.java:34) 在 org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) 在 org.codehaus .groovy.runtime.callsite.PogoMetaClassSite.call(PogoMetaClassSite.java:52) 在 org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:127) 在 org.ros2.tools.gradle.JavaAmentPluginExtension.updateJavaDependencies (JavaAmentPluginExtension.groovy:58) 在 jdk.internal.reflect.GeneratedMethodAccessor81.invoke(Unknown Source) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl。invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:564) 在 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101) 在 groovy .lang.MetaMethod.doMethodInvoke(MetaMethod.java:323) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1217) 在 org.codehaus.groovy.runtime.ScriptBytecodeAdapter.invokeMethodOnCurrentN(ScriptBytecodeAdapter.java:94) 在 org. ros2.tools.gradle.JavaAmentPluginExtension.this$dist$invoke$2(JavaAmentPluginExtension.groovy) at org.ros2.tools.gradle.JavaAmentPluginExtension$1.methodMissing(JavaAmentPluginExtension.groovy) at jdk.internal.reflect.GeneratedMethodAccessor80.invoke(Unknown Source ) 在 java.base/java.lang.reflect.Method 的 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)。在 groovy.lang.MetaClassImpl.invokeMissingMethod(MetaClassImpl.java:958) 在 groovy.lang.MetaClassImpl.invokePropertyOrMissing 的 org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:101) 调用(Method.java:564) (MetaClassImpl.java:1286) 在 org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:64) 在 org.codehaus.groovy 的 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1219)。 runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:160) at org.ros2.tools.gradle.JavaAmentPluginExtension$1.beforeResolve(JavaAmentPluginExtension.groovy:69) at jdk.internal.reflect.GeneratedMethodAccessor79.invoke(Unknown Source) at java .base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:564) 在 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24) 在 org.gradle.internal.event.DefaultListenerManager 的 org.gradle.internal.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:36) $ListenerDetails.dispatch(DefaultListenerManager.java:382) at org.gradle.internal.event.DefaultListenerManager$ListenerDetails.dispatch(DefaultListenerManager.java:364) at org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:58 ) 在 org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:339) 在 org.gradle.internal.event.DefaultListenerManager$EventBroadcast$ListenerDispatch.dispatch(DefaultListenerManager.java:352) 在 org. org.gradle.internal.event.AbstractBroadcastDispatch.dispatch(AbstractBroadcastDispatch.java:42)。gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:231) 在 org.gradle.internal.event.BroadcastDispatch$SingletonDispatch.dispatch(BroadcastDispatch.java:150) 在 org.gradle.internal.event.ListenerBroadcast。 dispatch(ListenerBroadcast.java:141) at org.gradle.internal.event.ListenerBroadcast.dispatch(ListenerBroadcast.java:37) at org.gradle.internal.dispatch.ProxyDispatchAdapter$DispatchingInvocationHandler.invoke(ProxyDispatchAdapter.java:94) at com .sun.proxy.$Proxy29.beforeResolve(Unknown Source) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.performPreResolveActions(DefaultConfiguration.java:674) at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration org.gradle.api.internal.artifacts.configurations 中的 .access$400(DefaultConfiguration.java:141)。DefaultConfiguration$1.run(DefaultConfiguration.java:618) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402) at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java :394) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) 在 org.gradle.internal.operations 的 org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165) .DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158) 在 org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92) 在 org.gradle.internal.operations.DelegatingBuildOperationExecutor。在 org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.lambda$resolveExclusively 的 org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveGraphIfRequired(DefaultConfiguration.java:611) 运行(DelegatingBuildOperationExecutor.java:31) (DefaultConfiguration.java:592) 在 org.gradle.api.internal.project.DefaultProjectStateRegistry$SafeExclusiveLockImpl.withLock(DefaultProjectStateRegistry.java:289) 在 org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveExclusively(DefaultConfiguration.java :590) 在 org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.resolveToStateOrLater(DefaultConfiguration.java:576) 在 org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getResolvedConfiguration(DefaultConfiguration.java:554) 在org.gradle.api.internal.artifacts。configuration.DefaultConfiguration_Decorated.getResolvedConfiguration(Unknown Source) at org.jetbrains.plugins.gradle.tooling.util.resolve.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:153) at org.jetbrains.plugins.gradle.tooling.util.resolve.DependencyResolverImpl .getDependencies(DependencyResolverImpl.java:537) 在 org.jetbrains.plugins.gradle.tooling.util.resolve.DependencyResolverImpl.resolveDependencies(DependencyResolverImpl.java:131) 在 org.jetbrains.plugins.gradle.tooling.util.DependencyResolver$resolveDependencies .call(Unknown Source) at org.jetbrains.plugins.gradle.tooling.builder.ExternalProjectBuilderImpl$_getSourceSets_closure1.doCall(ExternalProjectBuilderImpl.groovy:440) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect。NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:第564章 org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod (ClosureMetaClass.java:263) 在 groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1041) 在 groovy.lang.Closure.call(Closure.java:405) 在 groovy.lang.Closure.call(Closure.java: 421)在 org.gradle.util.ClosureBackedAction.execute(ClosureBackedAction.java:71) 在 org.gradle.util.ConfigureUtil.configureTarget(ConfigureUtil.java:154)在 org.gradle.util.ConfigureUtil.configure :105) 在 org.gradle.api.internal.DefaultDomainObjectCollection.all(DefaultDomainObjectCollection.java:163) 在 org.gradle.api.internal.DefaultDomainObjectCollection 的 org.gradle.util.ConfigureUtil$WrappedConfigureAction.execute(ConfigureUtil.java:166) .all(DefaultDomainObjectCollection.java:198) at org.gradle.api.DomainObjectCollection$all$1.call(Unknown Source) at org.jetbrains.plugins.gradle.tooling.builder.ExternalProjectBuilderImpl.getSourceSets(ExternalProjectBuilderImpl.groovy:240) org.jetbrains.plugins.gradle.tooling.builder.ExternalProjectBuilderImpl.doBuild(ExternalProjectBuilderImpl.groovy:101) 在 org.jetbrains.plugins.gradle.tooling.builder.ExternalProjectBuilderImpl.buildAll(ExternalProjectBuilderImpl.groovy:70) 在 org.jetbrains。 plugins.gradle.tooling.internal.ExtraModelBuilder.buildAll(ExtraModelBuilder.java:101) 在 org.gradle。tooling.provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1$1.create(DefaultToolingModelBuilderRegistry.java:104) 在 org.gradle.api.internal.project.DefaultProjectStateRegistry.withLenientState(DefaultProjectStateRegistry.java:134) 在 org.gradle.tooling。 provider.model.internal.DefaultToolingModelBuilderRegistry$BuildOperationWrappingToolingModelBuilder$1.call(DefaultToolingModelBuilderRegistry.java:100) at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) at org.gradle.internal.operations.DefaultBuildOperationExecutor $CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406) 在 .................................... ..................................................... ...... org.gradle.internal。concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56) 在 java.base/java.lang.Thread.run(Thread.java:832)

ros2_java_examples从命令行构建也失败,但出现不同的错误。

0 投票
1 回答
24 浏览

docker - 使用 Docker 会允许我不安装必要的必需品吗?

我对 Docker 以及如何使用它有点困惑。我的情况如下:

我有一个需要使用必备项的项目,在我的情况下是安装 ROS2。我已经将它安装在我的系统中并开发了一个程序。那里没问题。

我希望将它上传到 Gitlab 并在那里使用 CICD。所以我猜我会将它推送到我的存储库,然后构建一个管道,我可以在其中使用 ROS 2 的 docker 镜像作为镜像。我还没有尝试过(明天会这样做)但我想我应该这样做做。

我的问题是,我可以在本地机器上做类似的事情(或如何做)吗?换句话说,只使用 docker 镜像,然后在那里开发和构建,而不是首先安装必需品?

0 投票
0 回答
454 浏览

googletest - 使用 ROS 2 进行 Gtest

是否有类似于教程或更好的教程来学习和理解如何将 gtest(谷歌测试)应用于 ROS 2?

我已经在 ROS 2 中编写了一个监听器和一个发布者,并且想从现在开始启动一些 TDD

0 投票
1 回答
998 浏览

ros2 - 使用挂钟做除发布以外的事情

这个问题涉及ROS2。

在 ROS1 中,当您有发布者时,您通常会放置一个 while 循环来定期执行节点发布。相反,在 ROS2 中,您可以使用创建计时器create_wall_timer来调用定期发布消息的回调函数。

我的问题是(对于任何有 ROS2 经验的人)我可以创建这个计时器并将其用于与发布无关的其他任务吗?换句话说,像普通计时器一样使用?我需要定期做一些事情,我打算实现一个计时器,但由于这已经内置在 ROS2 系统中,我想用它来做我想要的处理。这是可能的还是可取的?

另外,我可以使用或创建多个这些挂钟吗?

0 投票
1 回答
360 浏览

ubuntu-18.04 - ROS2 Eloquent 安装在 Ubuntu 18.04.4 LTS 中失败

参考此链接,我正在将 ROS2 Eloquent 安装到我的 Ubuntu 18.04.4 LTS 中。

我的系统信息如下(通过uname -a

我可以毫无问题地设置语言环境设置源。然后,安装 ROS 2 软件包

运行sudo apt update后,我运行sudo apt install ros-eloquent-desktop并返回:

我截断了回复,只保留最后一部分,我认为这将帮助您了解问题所在。我用谷歌搜索但找不到解决方案。我也没有安装任何防火墙和防病毒软件。

请帮忙。非常感谢。

0 投票
1 回答
408 浏览

python - ROS2,将自定义消息发布到主题时出现类型错误(python)

我定义了一条自定义消息:uint8[] data

自定义消息导入到我的 Node 类中没有问题:from my_shared.msg import MyMessage

在同一个节点中,我使用以下命令创建发布者:self.my_publisher = self.create_publisher(MyMessage, 'topic_in', 200)

我发布消息:self.my_publisher.publish(my_msg)

my_msg 的构建方式如下:

可悲的是,我得到一个TypeError: File "/opt/ros/eloquent/lib/python3.6/site-packages/rclpy/publisher.py", line 68, in publish raise TypeError() TypeError

如果你知道我做错了什么,你能帮忙吗?

在此先感谢,G。

0 投票
1 回答
324 浏览

opencv - Colcon 找不到正确的 opencv 版本

这是在运行 ROS2 Dashing 的 Ubuntu 18.04 上。我从源代码构建了 OpenCV,并做了 ldconfig 的事情。但是 colcon 一直在尝试使用不同的版本。

错误是“缺少:opencv_cudaarithm opencv_cudafilters”:

整个错误信息:

然而,他们在那里:

4.1.1是我通过apt安装的版本。4.2 是从源代码构建的。

有趣的是,如果我只运行 cmake 而不是 colcon,那将运行完成,所以我猜 CMake 可以单独找到它。虽然我不确定如何处理生成的文件,但我想让 colcon 工作。

另一台机器(也带有 Dashing 的 18.04)可以毫无问题地找到 cudaarithm 和 cudafilters 模块。

0 投票
1 回答
1197 浏览

docker - 如何从使用主机网络运行的另一个 docker 容器访问自定义网络中的 docker 容器

我的程序由 ROS1 和 ROS2 节点网络组成,它们是使用发布/订阅通信方式的软件。

假设有 4 个节点在自定义网络中运行:onboard_network。

这 4 个节点(ROS1)只能一起通信,因此我们有一个桥节点(ROS1 和 ROS2)需要位于 onboard_network 和主机网络的边缘。我们需要主机网络的原因是因为主机在VPN(Zerotier)内部。在 VPN 内部,我们还有我们的服务器 (ROS2)。

我们还需要新娘节点与主机网络一起工作,因为 ROS2 可以处理一些仅在主机模式下工作的多播内容。

所以基本上,我想要一个在 onboard_network 内运行 4 个容器的 docker compose 文件和一个在主机网络内运行的容器。最后一个容器需要从 onboard_network 中的容器中看到并且也能够看到它们。我该怎么做?甚至可能吗?

0 投票
1 回答
84 浏览

windows - Ros/Ros2 安装失败可能是由于依赖关系

我已经广泛尝试了链接

https://index.ros.org/doc/ros2/Installation/Crystal/Windows-Install-Binary/#id3

只是它失败了很多很多次。我能找到的其他 Ros 和 Ros2 安装指南也是如此。我尝试在每个故障点寻找解决方案,但找不到任何可行的方法。Ros 和 Ros2 都无法在 Windows、Ubuntu 18 和 20 或 Raspbian 上安装。

由于依赖关系问题,许多安装尝试都失败了,我无法追踪丢失的东西或以其他方式正确识别它们可用于 Ros 或 Ros2。

如果有人成功安装了 Ros 或 Ros2,我想向他们询问有关它的信息以及对他们有用的详细信息。