Windows10でopen3dのpipインストール時のエラー(Could not install packages due to an OSError..)とその対処法

問題 Windows10でopen3dをpipでインストールしようとすると、インストールができない。以下のエラーが表示された。 Could not install packages due to an OSError: [Errno 2] No such file or directory: '...Python310\site-packages\jedi\third_party\dja…

Livox LidarでROSのタイムスタンプを同期する方法

課題 LivoxのLidarを使ってROSで地図生成を行う場合、何も設定しないとタイムスタンプが設定されずtfがエラーになってしまうため、タイムスタンプを同期する必要がある。 解決方法 以下のコマンドを実行し、Precision Time Protocol (PTP) デーモンをインス…

heic->jpeg変換ツール公開 (インストール不要 フリーソフト)

概要 iPhoneで撮影したheicファイルをjpegに変換する際、様々な変換ツールが存在しているが、webサービスもインストーラ付フリーソフトもセキュリティ上不安・・・ということで、インストーラなしのシンプルな変換ツールを自作したので公開する。 Pythonでさ…

pythonでHEIC形式の画像をjpegに変換する(Windows対応)

概要 iPhoneで撮影したHEIC形式のファイルをjpegに変換する際、webサービスにアップするのはセキュリティ上不安だし、このためだけにフリーソフトを入れるのもなんだか・・・ということで、pythonで変換できるようにしてみた。 よく紹介されているpyheifだと…

ubuntu20.04 catkin_make時の「Could not find a package configuration file provided by “boost_signals”」エラーへの対処法

ros

問題 ubuntu20.04でgmapping等のパッケージをcatkin_makeしようとすると、以下の通り、boost_signalsが無いとエラーが出てしまう。 Could not find a package configuration file provided by "boost_signals" (requested version 1.75.0) with any of the f…

(ROS1)pointcloud_to_laserscanを用いてpointcloud2をscanに変換する

pointcloud_to_laserscanを普通にcloneするとROS2のものになってしまうので、対応方法をメモ 過去のブランチを取ってくるだけなので、知見というほどでもないが・・・。catkin_ws/srcに以下をcloneしてcatkin_make git clone -b lunar-devel https://github.…

python,tkinterを用いた"GUIによるファイル選択⇒処理"のひな形

概要 python tkinterを用いて、GUIで指定したファイルに対して処理を行うプログラムを記載することが多い。 基本的には、整数バーやラジオボタン等を使ってパラメータを指定し、ファイルを指定して出力、という流れがほとんどとなる。毎回書き方を調べるのも…

16進数が記載されたテキストファイルをバイナリに変換(python)

経緯 wireshark等でキャプチャした16進数の値をバイナリに変換したい!と思って作ったスクリプト。 実行するとGUIでテキストを選択するダイアグラムが出るので、そこでテキストファイルを選択すると、同じディレクトリに.binとしてバイナリ化されたファイル…

ROS、tf2に切り替えた際の以下のエラーの解消法 (Warning)Invalid argument "/map" passed to canTransform argument target_frame

問題 ROSにて、tfをtf2に切り替えると、 Warning: Invalid argument "/map" passed to canTransform argument target_frame in tf2 frame_ids cannot start with a '/' like: at line 134 in /tmp/binarydeb/ros-kinetic-tf2-0.5.20/src/buffer_core.cppとい…

Curaでサポートレイヤーを確認する

概要 Curaでサポートを自動生成する際、標準の表示では「どこにサポートがつくか」は分かるが、「どうサポートがつくか」がわからない。 表示設定を変えることで、サポートがどうつくかを確認できることが分かったのでメモ。#知っている人にとっては常識だ…

ロボットの部品作成の為に3Dプリンタi3 Megaを購入

概要 ロボットを改造するために、3Dプリンタを使ってジグを作成していたが、DMM等に製作依頼をすると、100*30mm程度のサイズのジグでも1個1500円近くしてしまう。配送料も込みだし、この価格になるのもやむを得ないと思うが、気軽に頼むにはやは…

Thinkpad x280,UbuntuのCPUクロックの低下(サーマルスロットリング)対策 x1 carbonも同様

概要 Thinkpad x280(core i5 8250U)、Ubuntuの組み合わせでは電力制限のしきい値が低く設定されているため、高負荷処理時にCPU動作周波数が激減してしまう。いわゆるサーマルスロットリングが原因で発生している事象の模様。 海外のフォーラムを見ると、これ…

ROS melodic(Ubuntu18.04)でmap_server,gmapping,navigationパッケージを導入する

新しいPCを購入したので、Ubuntu18.04、ROS melodicを導入してみた。 ROS melodicはまだ多くのパッケージがapt-getでインストールできるようになっていないので、git から落としてきてmakeすることになる。 gmappingを使って地図を作り、ナビゲーションをし…

rqt_bagをclockオプション付きで起動する方法(ROS)

ros

経緯 rosbagと比較して、rqt bagはGUIで速度変更、再生時刻の変更が出来て便利。 しかし、rqtからrqt bagを起動すると、clockオプションをつけることが出来ないため、tfをうまく操作することが出来ず、gmapping等を実行することが出来なかった。 そのため、…

DJI Telloのモータ交換・修理方法を写真つきで詳しく紹介する

概要 DJI Telloがpythonで制御できると聞き、購入してみたが開封後30分でフリップ時に壁に衝突させ、モータが動かなくなってしまった。 モータを別途購入し、修理を行ったので記録として残しておく。修理にかかる作業時間は15分ほど、慣れていない人でも30分…

USBシリアル接続時に自動で書込権限を付与する(ubuntu,/dev/ttyACM0)

経緯 書き込み、実行権限の自動付与 経緯 ubuntuでUSBシリアルデバイス等を扱う際、挿入時に書き込み・実行権限が付与されないため、挿入のたびに毎回、 sudo chmod 777 /dev/ttyACM0として、いちいち権限をつけてやる必要がある。 特にロボット関係の機材は…

pipをアップグレードするとpip installがエラーで使えなくなる問題の解決方法(from pip import main; ImportError: cannot import name main)

経緯 解決方法 経緯 pip install --upgrade pipとしてpipをアップグレードすると、以下のエラーが出てpip installが出来なくなる問題が発生した。 どうもpip9〜pip10の移行に伴う問題の模様。 調べると様々な解決策が講じられているが、どれもあまりうまく行…

ダウンロード時間計算ツール

概要 楽天モバイルのスーパーホーダイに契約をして、通常は1Mbpsに帯域制限をして携帯電話を使用している。 ある程度大きなファイルサイズのものをダウンロードする際、1Mbpsだと何分かかるんだっけ・・・?と電卓をポチポチ叩いて計算するのが煩わしくなっ…

Googleドライブ共有リンク変換ツール(クリック一発で直接ダウンロード!)

概要 はてなブログでZipファイル等を公開する際、GoogleDriveのファイル共有機能を利用している。 しかし、GoogleDriveで作成したURLは、クリックすると以下画像のようなGoogleDrive画面が開いてしまい、ファイルをダウンロードするまでにひと手間かかってし…

見開きPDFのページ分割/トリミングアプリ (フリーソフト、非破壊自炊PDF)

フリーソフト概要 書籍等を私的利用のために、数ページ、スキャナでスキャンすることがあるが、iPad等で閲覧する際、見開きではなく1ページずつ表示したくなる。 しかし、見開きのPDFファイルを、左右1ページずつにトリミングし、分割したPDFに変換してくれ…

pyinstallerを使ったpythonコードのexe化と、処理時間の評価(onefileオプションの有無を含む)

概要 pyinstallerを使ってpythonスクリプトのexe化することがままあるが、exe化すると速度が遅くなるように感じる。(特に--onefileオプションを入れて一つのファイルにパッケージ化した場合) しかし、どの程度の速度低下があるのか定量的に測定した例がな…

Pythonでword,docxファイルを操作・置換する(python-docx)

概要 大量の文章ファイルを扱うとき、いちいちwordを使ってdocxの中身を変更するのは面倒。 Pythonを使ってある程度自動化できないか・・・と考えて調査したところ、簡単に実装できたのでまとめておく。 対象とする環境 OS異存なし Python2.7 概要 対象とす…

中心のずれた見開きスキャンPDFを2ページに分割する方法(Python,pypdf)

概要 参考書等を数ページスキャナで取り込み、タブレットに保存して、参照したいことがままある。 その際、なるべく綺麗に取り込みたいところだが、見開きでスキャンしてしまうと、以下のイメージのように、スキャンした部分でない余白部分が残ってしまう。 …

ROSのRvizにwaypointを表示させる方法(Python)

概要 rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS) - 技術メモ集にて、ウェイポイントを保存し、その順番通りにロボットを自律走行させる方法を記載した。 しかし、実際に自律走行させてみると、ウェイポイントを追加し…

ROS解説本4冊の書評と、開発スタイルに合わせたおすすめの入門書紹介(2018/10/20 実用ロボット開発のためのROSプログラミング追加)

概要 ROSの解説本として日本語で販売されている書籍として、「ROSではじめるロボットプログラミング」、「ROSロボットプログラミングバイブル」「プログラミングROS」の3冊がある。 どれも非常によくまとまっているが、それぞれ個性があるので、各書籍の感…

rvizのGUIで指定したウェイポイント通りにロボットを自律走行させる(Python,ROS)

概要 ROSのチュートリアル等では、RvizのGUIで指定した場所に自律走行させるところまでで終わっていることが多く、広い環境下でロボットをウェイポイントに沿って自律走行させる方法がまとまっていない。 そこで、本稿では、RvizのGUI上で指定したウェイポイ…

PythonでROSのRvizに基本図形を描画する簡単な方法

概要 PythonでROSのRvizに基本図形を描画する方法を記載する。 C++は以下のROSチュートリアルが参考になるが、Pythonで記載された例がないので、私のような「どうしてもPythonで書きたい・・・」という人のために、サンプルを記載しておく。 各項目の説明は…

日本とアメリカでアレグラの用量、用法が違う!理由を半減期を根拠に計算してみた

概要 アメリカ出張時に、薬局でアレグラの説明を読むと、日本と違うことが書かれている。 具体的に比較すると以下の通り。日本:60mgを1日2回 (合計120mg) アメリカ:180mgを1日1回アメリカは1日1回でいい代わりに、1日の用量が日本の1.5倍になっている。 1日1…

AlexaにLine経由でリマインドして貰うSkillを作った(Python, Line Notify API)

概要 Alexaアプリ第二弾。 今度はAlexaに話しかけることで、Lineに通知・リマインドしてくれるアプリを作った。 Echoに対して、 「アレクサ、リマインダーで⚪︎⚪︎とリマインドして」 と話しかけると、Lineに⚪︎⚪︎の部分を通知してくれる。[第一弾はこちら] 【A…

【Alexa Skill開発】LaunchRequest時にエラーになってしまう場合に確認すべき事項(Python)

概要 Alexaのスキルはシミュレータでもデバッグできるので、比較的デバッグがしやすい。 しかし、スキルが最初に呼び出された際の挙動がシミュレータでは確認できないため、エラーが発生した際のデバッグが困難。 気づいてみれば簡単なことだったけれど、結…